浏览器端点的时候 触发onclientclick的return为false就不会执行他的服务端代码了,表单就不会提交了。

 

但是禁用掉了浏览器的js,客户端的onclientclick就没用了,跳过浏览器校验,很不安全,只是客户用起来方便,所以要双重校验,,服务端要做最后的把关。

 

客户端校验:不用每次都postback,页面刷来刷去的。能让用户快速的知道:输入的有错了。

服务端:最后的把关,防止恶意请求。

 

ASP.NET有自己的Validation框架,就不用自己客户端服务端都写验证条件。加快开发速度。

 

 

原文:http://www.cnblogs.com/weihengblogs/p/3433154.html

 

 

 

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

 

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

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

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

 

onclientclick和onclick区别
    





            
onclientclick和onclick区别
onclientclick和onclick区别
    





            
onclientclick和onclick区别
    <script language="javascript" type="text/javascript">
        function buttonClick() {
            alert("我是客户端点击事件");
            return false;     
        }

     </script> 

onclientclick和onclick区别
    





            
onclientclick和onclick区别
onclientclick和onclick区别
    





            
onclientclick和onclick区别

页面代码:

onclientclick和onclick区别
    





            
onclientclick和onclick区别
onclientclick和onclick区别
    





            
onclientclick和onclick区别
 <form ></asp:Label>
    </div>

   </form> 

onclientclick和onclick区别
    





            
onclientclick和onclick区别
onclientclick和onclick区别
    





            
onclientclick和onclick区别

cs文件代码:

protected void Button1_Click(object sender, EventArgs e)
{
    this.Label1.Text = "我是服务端点击事件";

 

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

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

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

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

 

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

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

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

 

onclientclick和onclick区别
    





            
onclientclick和onclick区别
onclientclick和onclick区别
    





            
onclientclick和onclick区别
    <script language="javascript" type="text/javascript">
        function buttonClick() {
            alert("我是客户端点击事件");
            return false;     
        }

     </script> 

onclientclick和onclick区别
    





            
onclientclick和onclick区别
onclientclick和onclick区别
    





            
onclientclick和onclick区别

页面代码:

onclientclick和onclick区别
    





            
onclientclick和onclick区别
onclientclick和onclick区别
    





            
onclientclick和onclick区别
 <form ></asp:Label>
    </div>

   </form> 

onclientclick和onclick区别
    





            
onclientclick和onclick区别
onclientclick和onclick区别
    





            
onclientclick和onclick区别

cs文件代码:

protected void Button1_Click(object sender, EventArgs e)
{
    this.Label1.Text = "我是服务端点击事件";

 

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

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

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

相关文章:

  • 2021-11-20
  • 2022-12-23
  • 2021-11-26
  • 2022-12-23
  • 2021-07-14
猜你喜欢
  • 2021-11-30
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-11
  • 2021-07-18
  • 2022-12-23
相关资源
相似解决方案