查看许多论坛,这似乎是解决方案,但是,它似乎对我不起作用:
function update() {
alert("hello world");
var test = document.getElementById("<%=InCL.ClientID%>").value;
alert(test);
}
asp/html 是:
<asp:TextBox ID="InCL" runat="server" Text="" value="" onchange="update()"></asp:TextBox>
似乎我错过了一些简单的东西?我还尝试使用单引号 <%=InCL.ClientID%>
更改时会弹出警报“hello world”,但不用于测试...
使用asp.net 3.5、FF、母版页等...
谢谢。
编辑
所以我将其更改为使用 this.value 并且可行,但仍然没有解决如何通过 id 获取它的问题?
作品:
<asp:TextBox ID="InCL" runat="server" Text="" value="1" onchange="update(this.value)"></asp:TextBox>
与:
function update(x) {
alert(x);
}
最佳答案
这不起作用的原因是 JavaScript 位于外部 js 文件中,该文件不经过处理管道,而是从磁盘静态提供。服务器端标签<%=InCL.ClientID%>需要经过处理管道渲染出服务器控件的id字符串。
解决此问题的最简单方法是将脚本元素放入页面中。其他方法是仅定义页面中具有服务器标记的 JavaScript 并分配给全局变量。然后在全局变量声明和赋值之后定义您的外部脚本 - 然后您可以在外部脚本文件中使用此变量。
关于javascript - 如何将 asp.net 3.5 文本框输入到 JavaScript 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3739701/