我有一个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);");
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top