我的 aspx 页面包含产品列表以及动态生成的文本框和每个产品的一个订购按钮。
文本框和按钮是在运行时生成的,文本框的 ID 为 txt110234、txt110235...等,按钮的 ID 为 btn110234、btn110235...等。
每次用户都必须在文本框中输入数量,然后按与任何产品关联的订单按钮才能下订单。
一切都工作正常,但现在我想使用ajax来完成它,所以我需要获取用户在文本框中输入的值。我想做这样的事情-
var quan = document.getElementById('<%= txt' + id + '.ClientID%>').value;
但它给了我以下错误。
Compiler Error Message: CS1012: Too many characters in character literal Source Error:
我如何获得文本框的值?任何建议将不胜感激..
最佳答案
你得到的错误是因为你不能在“<%= .. %>” block 中涉及javascript。此外,这看起来也不可能,因为在渲染页面之前,服务器会计算“<%= .. %>”表达式,但您的“id”是客户端变量。
您可以在服务器端设置脚本,如下所示:
客户端代码:
function foo(ctlID)
{
var quan = document.getElementById(ctlID).value;
}
服务器端代码:
TextBox txt = new TextBox();
txt.ID = "SomeID";
Form.Controls.Add(txt);
Button btn = new Button();
btn.ID = "someID";
btn.OnClientClick = "foo('" + txt.ClientID + "')";
关于javascript - 如何在asp.net中获取动态创建的文本框Web控件的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12154374/