asp.net 中的onclick和onclientclick事件

        在web开发中,onclick和onclientclick挺常见的。onclick事件是服务端事件,执行C#代码,先执行postback,在执行他的方法。onclientclick事件是客户端事件,通常执行javascript,在浏览器运行。如果一个按钮既有onclick事件又有onclientclick事件,他们的执行顺序是先onclientclick事件,再是onclick事件。由于onclick事件要和服务端交互,所以他的效率不如onclientclick,在一些不必要和数据库打交道的,就用onclientclick事件就行,需要和数据库打交道的再用onclick事件,这样就能提高效率,节省资源。

        例如,往数据库里添加手机号码,往数据库里添加之前要判断他的长度和首位不能是0,如果在后台哟onclick判断,不正确还得返回来,所以可以用onclientclick事件在前台判断。当然这里用正则表达式也可以。

        页面代码:

	<input id="txtPhone" type="text" />        
	 <asp:Button ID="btnAdd" runat="server" Text="添加" OnClientClick="return Check()" OnClick="btnAdd_Click" />


        如图,

           

        js代码:判断长度为11并且第一个不能为0.

<script  type="text/javascript">
        function Check() {            
            var phone = document.getElementById("txtPhone1").value;
            var first=phone.substring(0, 1);
            if (phone.length == 11 & first!=0) {                
                return true;
            } else {
                return false;
            }
        }
    </script>

        若我们输入“12345678912”,则会执行后台的onclick事件的代码。如果我们输入的不是11位或者第一位为0,则不执行后台的代码。这里后台执行向前台显示“正确的号码”,显示结果如下:


        要注意的是,如果我们去掉onclientclick里的return,则达不到效果,无论我们输入的是什么,他都会执行后台onclick事件。

<span style="white-space:pre">	</span><input id="txtPhone1" type="text" />
        <asp:Button ID="btnAdd" runat="server" Text="添加" OnClientClick="Check()" OnClick="btnAdd_Click" />
结果如下:

        总结OnClientClick中我们常用来做一些客户端的检测,检测通过了可以在执行后台的代码.当然放在服务器也可以做同样的检测,但这样做的代价是与服务器进行交互,消耗资源。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值