今天遇到一个问题关于OnClientClick和OnClick的 ,看一下下面的代码有啥不同吧:
<asp:Button ID="btnQuery" runat="server" Text="查询(Q)" AccessKey="Q" OnClientClick="btnQuery();" OnClick="btnQuery_Click" CssClass="nButton" />
<asp:Button ID="btnQuery" runat="server" Text="查询(Q)" AccessKey="Q" OnClientClick="return btnQuery();" OnClick="btnQuery_Click" CssClass="nButton" />一眼看出,OnClientClick的方法中 多了一个return。
OnClientClick="btnQuery();" 这样当然会执行btnQuery方法 但是不管return的是true和false 都会跳转到OnClick事件,也就是说,当我们的判断不正确的时候,也会去cs类中执行后台的代码,相当于OnClientClick事件没有起到它应该有的作用。
如果定义了OnClientClick事件,事件中return true的时候 才会去执行OnClick事件。其实就是一个单词return的原因,害我整整弄了一个小时。
在进行验证判断的时候,其实一些验证可以放在页面中判断的,无需再去后台cs类中去判断了,仅仅说一下关于文本框中包含特殊字符的js判断吧。
其实在cs中写的时候很简单。代码如下:
this.TextBox1.Text.Trim().Contains("$")但是我们要把它放到前台js中,可就不行了,再来看看下面这段代码:
txtNum.value.trim().indexOf('$')>= 0好啦,就这点知识小分享,小知识,大智慧!