如何在asp.net中获取动态创建的文本框web控件的值
How to get value of dynamically created textbox web control in asp.net
My aspx页面包含产品列表以及动态生成的文本框和每个产品的一个订单按钮。
文本框和按钮是在运行时生成的,文本框的id为txt110234、txt110235…等等,按钮的id为btn10234、btn10235……等等。
每次用户都必须在文本框中输入数量,然后按下与任何产品相关的订单按钮才能下订单。
每件事都很好,但现在我想使用ajax来完成,所以我需要获得用户在文本框中输入的值。我想做这样的事情-
var quan = document.getElementById('<%= txt' + id + '.ClientID%>').value;
但它给了我以下错误。
编译器错误消息:CS1012:字符文本中的字符太多源错误:
如何获取文本框的值?任何建议都将不胜感激。。
您得到的错误是因为您不能将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 + "')";
建议:其中一种方法是使用jQuery-css选择器。您可以将一个特定的cssclass分配给所有输入文本框,并通过jQuery选择器检索所有文本框。
例如,在动态生成文本框时,可以将它们分配给CssClass=".productQuantity"
然后稍后使用jQuery选择器,类似于$('.productQuantity')
如果我想遍历多个元素,我个人更喜欢这种方法。这使我不用处理Id等。
相关文章:
- 同一文本框中的验证程序CPF e CNPJ(ASP.NET web应用程序)
- 如何在asp.net中获取动态创建的文本框web控件的值
- Javascript将选定的web文本移动到MS Word
- 元素找不到带有文本的selenium Web驱动程序
- 无法使用Javascript和Selenium Web驱动程序保存保存在表单元格中的文本
- 如何在Web SQL数据库中逐行插入文本文件
- Lotus Notes web表单-IE中的文本区域问题
- 在 Fabric.js 中使用远程 Web 字体初始化加载文本
- 在通过 flask Web 服务器呈现的 html 页面中显示 iframe 中文本文件的内容
- 如何在 asp.net 中更改文本框的事件时调用Web方法
- 将数据从 Web 浏览器控制台导出到剪贴板或文本文件
- ThreeJS:Web GL 渲染器和 Canvas 渲染器之间的文本精灵字体大小差异
- 创建一个类似的“收件人”文本框,该文本框显示在许多基于Web的电子邮件网站上
- 当用户使用 ASP.NET 从 Web 窗体中的“下拉列表列表”中选择“其他”时,文本框的显示方式
- Web 文本编辑器 - 将单选按钮绑定到 javascript 函数
- 强制“旁白”在 Web 浏览器 (OS X) 中朗读文本
- 如何在 Web 组件中设置标签的内部文本
- 适用于 iPad Web 的 HTML 文本效果动画
- Mopub移动web/javascript实现调整文本大小/覆盖CSS
- 如何对基于web的文本编辑器进行实时预览