我在Gridview的ItemTemplate中有一个文本框。在_RowDataBound事件中,我将一个属性添加到文本框中,如下所示:
TextBox txtQuantity = (TextBox)e.Row.FindControl("txtQuantity");
txtQuantity.Attributes.Add("onkeypress", "CheckInputForNumeric(event)");
它根本不会激活JS函数。
我已经尝试过onClick,onBlur,onKeyPress ...甚至尝试将案例改为:onclick,onblur,onkeypress ......似乎没有什么能解雇我的JS函数。
我在同一页上的其他地方:
txtAddMarkup.Attributes.Add("onkeypress", "CheckInputForNumeric(event)");
(该文本框不在gridview中) 这很好用。
我在这一点上完全陷入困境和沮丧,因为无论我做什么,我都无法让这个文本框启动JavaScript函数
答案 0 :(得分:0)
请运行您的项目并查看通过查看broswer中的源(IE,Firefox,Safari等)生成的文本框的名称。您可能会看到文本框的名称已更改。谢谢,ASP。
您无法使用DOM按名称访问元素,因为它们已为您重命名。
答案 1 :(得分:0)
出于某种原因,删除临时互联网文件并重新加载页面并没有获得最新的.js。我不得不卸载项目并重新构建它。这很奇怪,因为我以前从来没有这样做过其他控件
感谢您的投入!
答案 2 :(得分:0)
试试这个:
TextBox txtQuantity = (TextBox)e.Row.FindControl("txtQuantity");
txtQuantity.Attributes.Add("onkeypress", "CheckInputForNumeric(event)");
txtQuantity.Attributes["onkeypress"] =
string.Format("javascript:CheckInputForNumeric(this,'{0}','{1}','{2}');", argument1, argument2, argument3);
或者只是
txtQuantity.Attributes["onkeypress"] =
string.Format("javascript:CheckInputForNumeric (this);");