<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());
在后台调用 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/
*****************************************************************************
欢迎使用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()" />
<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());
在后台调用 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/
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)
http://feiyun0112.cnblogs.com/
#4
txtOK.Attributes.Add("OnTextChanged", "Msg();");
//这样注册的应该是客户端事件,客户端事件没有OnTextChanged事件,应该是onchange
如:
txtOK.Attributes.Add("onchange", "Msg();");
#5
参考C#下运行javascript:
http://www.cnblogs.com/insus/articles/1945582.html
http://www.cnblogs.com/insus/articles/1945513.html
http://www.cnblogs.com/insus/articles/1945582.html
http://www.cnblogs.com/insus/articles/1945513.html
#6
不用那么麻烦,可以直接用HTML控件
<input id="txtOK" type="text" onblur="Msg()" />
<input id="txtOK" type="text" onblur="Msg()" />