zoukankan      html  css  js  c++  java
  • OnClientClick和OnClick的区别

           最近发现两个特别相近的客户端事件,OnClientClick和OnClick,都是点击事件,又有什么区别呢?
    首先我们要了解这两个事件:

           OnClientClick是客户端事件方法.一般采用JavaScript来进行处理.也就是直接在IE端运行.一点击就运行.


           OnClick事件是服务器端事件处理方法,在服务器端,也就是IIS中运行.点击按钮后,执行postback,再运行.


           如果一个按钮上我们同时有客户端的OnClientClick方法又有OnClick事件处理方法,如何才能按照正常的逻辑运行呢.


          OnClientClick中我们常用来做一些客户端的检测.当然放在服务器也可以做同样的检测,但这样做的代价是与服务器进行交互,消耗资源,而且用户体验不好...

          比如说:Button有:OnClick事件和OnClientClick属性,前者一般就是服务端的点击事件!后者则是客户端的点击事件!

         我们来做一个测试!在Default.aspx页面中添加如下代码!

    <strong><span style="font-size:18px;">  <script language="javascript" type="text/javascript">
               function buttonClick() {
                   alert("我是客户端点击事件");
                   return false;     
              }
      </script></span></strong>


    <form id="form1" runat="server">
        <div>
            <asp:Button ID="Button1" runat="server" Text="些Button是服务端控件,默认使用OnClientClick事件,请禁用浏览器的Js功能体验"
                OnClick="Button1_Click" OnClientClick="return buttonClick();" />
            <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
        </div>
    
    </form>
    cs类代码:
    protected void Button1_Click(object sender, EventArgs e)
    {
        this.Label1.Text = "我是服务端点击事件";
    }
         

         大家运行看看是什么效果?  你可能会发现,只弹出了JS中的代码! 没错,这正是我们想要的效果,通过return false 来"屏蔽"服务端的校验!好处是什么? 就是不用刷新页面呀!

         你再把浏览器的脚本功能禁用了,你再试一试,看看又是什么效果?

         通过又重校验就能确保用户的非法录入,这正是我们想要的结果!

  • 相关阅读:
    CodeForces gym Nasta Rabbara lct
    bzoj 4025 二分图 lct
    CodeForces 785E Anton and Permutation
    bzoj 3669 魔法森林
    模板汇总——快读 fread
    bzoj2049 Cave 洞穴勘测 lct
    bzoj 2002 弹飞绵羊 lct裸题
    HDU 6394 Tree 分块 || lct
    HDU 6364 Ringland
    nyoj221_Tree_subsequent_traversal
  • 原文地址:https://www.cnblogs.com/xzpblog/p/5117922.html
Copyright © 2011-2022 走看看