ASP.NET TextBox的onTextChanged 事件响应JS函数问题

时间:2022-07-09 00:58:42
客户端页面有个TextBox服务器控件:
 <asp:TextBox ID="txtOK" runat="server" OnTextChanged="Msg()"/>
其中Msg()为JS函数。要实现的是,当客户端的TextBox文本发生变化时,自动调用JS的函数Msg()对输入的内容进行验证,在服务器端,我也注册了客户端事件:
txtOK.Attributes.Add("OnTextChanged", "Msg();");
可是运行程序仍旧出错!
求前辈给我指点下,或者有做过类似的asp.net中服务器端控件响应js代码的例子或是心得可以告诉小弟的,小弟我不甚感激。
运行程序,给出的错误提示是:“Asp.default_aspx”不包含“Msg”的定义,并且找不到可接受类型为“ASP.default_asp”的第一个参数的扩展方法“Msg”(是否缺少using指令或程序集引用?)
已经验证了JS函数在button中的onClientClick事件中时可以响应的。

6 个解决方案

#1


我晕……  JS写在前台,后台直接Msg()肯定不行的。

在后台调用 javascript 函数,函数在.js文件中

前台的head 元素

<head runat="server">
<script type="text/javascript" src="JScript.js">
</script>
    <title>using javascript</title>
</head>

后台的需要添加如下代码

Button1.Attributes.Add("onclick", "showname1(XXX)");




在后台调用 javascript 函数,函数写在 .js文件中,但并没有在前台定义

//获得.js文件

string myscript = "JScript.js";

//注册.js文件, 如果此时查看源码,会得到如下代码

//<script> src ="JScript.js" type="text/javascript"><script>

Page.ClientScript.RegisterClientScriptInclude("myKey", myscript);

//同上
Button1.Attributes.Add("onclick", "showname1(123)");

例子:StringBuilder sb = new StringBuilder();
        sb.Append("<script language='javascript'>");
        sb.Append("Button2_onclick('" + serverPath + "')");
        sb.Append("</script>");
        ClientScript.RegisterStartupScript(this.GetType(), "LoadPicScript", sb.ToString());

#2


本人觉得应该在TextBox失去焦点的时候判断,用onblur  (TextBox失去焦点的事件)

#3


用<input type="text">吧 如果后台需要调用值加上runat="server"也没关系 再使用input的事件响应onchange
  
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) 

http://feiyun0112.cnblogs.com/

#4




txtOK.Attributes.Add("OnTextChanged", "Msg();");
//这样注册的应该是客户端事件,客户端事件没有OnTextChanged事件,应该是onchange
如:
txtOK.Attributes.Add("onchange", "Msg();");

#6


不用那么麻烦,可以直接用HTML控件

<input id="txtOK" type="text" onblur="Msg()" />

#1


我晕……  JS写在前台,后台直接Msg()肯定不行的。

在后台调用 javascript 函数,函数在.js文件中

前台的head 元素

<head runat="server">
<script type="text/javascript" src="JScript.js">
</script>
    <title>using javascript</title>
</head>

后台的需要添加如下代码

Button1.Attributes.Add("onclick", "showname1(XXX)");




在后台调用 javascript 函数,函数写在 .js文件中,但并没有在前台定义

//获得.js文件

string myscript = "JScript.js";

//注册.js文件, 如果此时查看源码,会得到如下代码

//<script> src ="JScript.js" type="text/javascript"><script>

Page.ClientScript.RegisterClientScriptInclude("myKey", myscript);

//同上
Button1.Attributes.Add("onclick", "showname1(123)");

例子:StringBuilder sb = new StringBuilder();
        sb.Append("<script language='javascript'>");
        sb.Append("Button2_onclick('" + serverPath + "')");
        sb.Append("</script>");
        ClientScript.RegisterStartupScript(this.GetType(), "LoadPicScript", sb.ToString());

#2


本人觉得应该在TextBox失去焦点的时候判断,用onblur  (TextBox失去焦点的事件)

#3


用<input type="text">吧 如果后台需要调用值加上runat="server"也没关系 再使用input的事件响应onchange
  
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) 

http://feiyun0112.cnblogs.com/

#4




txtOK.Attributes.Add("OnTextChanged", "Msg();");
//这样注册的应该是客户端事件,客户端事件没有OnTextChanged事件,应该是onchange
如:
txtOK.Attributes.Add("onchange", "Msg();");

#5


#6


不用那么麻烦,可以直接用HTML控件

<input id="txtOK" type="text" onblur="Msg()" />