.NET Textbox通过Javascript/jQuery访问返回undefined值求助
ASP.NET服务器端TextBox的Javascript/jQuery取值解决方案
问题根源
你之前的写法存在两个核心错误:一是jQuery选择器缺少#前缀(通过ID选择元素必须加#才能匹配);二是混淆了jQuery对象与原生DOM元素的属性调用逻辑——jQuery对象没有.value属性,需使用其专属的.val()方法取值。
正确写法示例
1. jQuery 兼容写法(适配所有ASP.NET版本)
// 正确定位元素并获取值 var testVal = $("#<%=txtChosenTime.ClientID%>").val(); console.info(testVal);
说明:<%=txtChosenTime.ClientID%>会在服务器端渲染为客户端实际生成的元素ID,加上#后jQuery才能准确匹配到目标TextBox,再通过.val()方法获取输入值。
2. 原生JavaScript 写法
// 获取原生DOM元素后直接读取value属性 var testVal = document.getElementById("<%=txtChosenTime.ClientID%>").value; console.info(testVal);
3. 简化写法(ASP.NET 4.0及以上版本可用)
若项目基于ASP.NET 4.0+,可给TextBox设置ClientIDMode="Static",让客户端ID与服务器端ID完全一致:
<asp:Textbox ID="txtChosenTime" runat="server" ClientIDMode="Static"></asp:Textbox>
之后可直接使用服务器端ID进行取值:
// jQuery简化版 var testVal = $("#txtChosenTime").val(); // 原生JS简化版 var testVal = document.getElementById("txtChosenTime").value;
内容的提问来源于stack exchange,提问作者Brandon Armstrong
相关产品推荐
相关产品推荐

