0

我的 aspx 页面包含产品列表以及动态生成的文本框和每个产品的一个订单按钮。

文本框和按钮在运行时生成,其 id 为 txt110234,txt110235...等文本框,btn110234,btn110235...等按钮。

每次用户必须在文本框中输入数量并按下与任何产品关联的订单按钮才能下订单。

一切正常,但现在我想使用 ajax 来做,所以我需要获取用户在文本框中输入的值。我想做这样的事情 -

   var quan = document.getElementById('<%= txt' + id + '.ClientID%>').value;

但它给了我以下错误。

编译器错误消息:CS1012:字符文字源错误中的字符过多:

我怎样才能获得文本框的价值?任何建议将不胜感激..

4

2 回答 2

2

你得到的错误是因为你不能在 "<%= .. %>" 块中涉及 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 + "')";
于 2012-08-28T07:13:26.487 回答
0

建议:一种方法是使用 jQuery css 选择器。您可以为所有输入文本框分配一个特定的 cssclass,并通过 jQuery 选择器检索所有这些文本框。

例如,在动态生成文本框时,您可以为它们分配 CssClass =".productQuantity"

然后使用 jQuery 选择器,例如 $('.productQuantity')

如果我想遍历多个元素,我个人更喜欢这种方法。这使我免于处理 ID 等。

于 2012-08-28T07:12:27.943 回答