zoukankan      html  css  js  c++  java
  • onclientclick和onclick区别

    OnClientClick是客户端脚本,一般使用javascript,在客户端,也就是IE中运行,点击后马上执行
    OnClick是服务器端事件处理函数,使用C#或者vb.net,在服务器端,也就是IIS中运行,点击按钮后,执行postback,之后再运行。

    其实有的时候需要客户端和服务端双重校验,为什么这么说呢? 比果说,一个用户名的文本框,在客户端我们通过JS校验,只能输入字母和数字,不能有特殊字符!通常情况下是没有问题的,但是总有那么一丢丢人想方设法的去“搞破坏” ,这个时候就需要进行双重校验了!说白了,就是服务端和客户端都进么校验!

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

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

     

    复制代码
        <script language="javascript" type="text/javascript">
            function buttonClick() {
                alert("我是客户端点击事件");
                return false;     
            }

         </script> 

    复制代码

    页面代码:

    复制代码
     <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 来"屏蔽"服务端的校验!好处是什么? 就是不用刷新页面呀!

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

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

  • 相关阅读:
    PrintWriter、PrintStream的苦头 缓冲区问题
    BufferedImage与byte[]互转
    求两个日期的间隔天数
    Timer和TimerTask详解
    Java连接Access数据库
    根据value字段对map进行排序
    java collections读书笔记(3)Arrays
    java collections读书笔记(4) stack
    运行时异常与一般异常有何异同?(转)
    java collections读书笔记(7) bitset
  • 原文地址:https://www.cnblogs.com/weihengblogs/p/3433154.html
Copyright © 2011-2022 走看看