不能从一个文本框在GridView获取JavaScript功能火灾
-
19-09-2019 - |
题
我有一个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函数
解决方案
请运行项目,并期待在由broswer查看源代码生成的文本框(IE,火狐,Safari浏览器,等等)的名称。您可能会看到文本框的名称已更改。谢谢,ASP。
您不能使用DOM通过名称来访问元素,因为他们改名为你。
其他提示
由于某些原因,删除Internet临时文件,并重新加载页面没有得到最新的.js文件。我不得不卸载项目,并重新构建它。这是奇怪,因为我以前从来没有这样做,其他控件
感谢您的输入!
尝试这一个:
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);");
不隶属于 StackOverflow