客户端验证与server端验证

来源:互联网 发布:用王家卫 知乎 编辑:程序博客网 时间:2024/05/16 08:57

今天想实现一个注册、登录界面。所以接触到了客户端控件和server端控件。

客户端控件:主要是一些input控件,type = "text" , "submit"等。这些控件的验证可以使用javascript。

javascript客户端验证与server端的验证比较有一下优点:

(1)反应快速,节省时间:不需要刷新网页。在server端验证需要把内容提交到server。

但是客户端的验证不能和数据库相连,因此只能验证:

(1)字符串非空、格式的验证

(2)数字的验证:包括转换之类的

(3)正则表达式验证。

因此可以对:邮箱格式验证、手机号码验证、邮编验证等。

一些验证可参考: http://blog.csdn.net/diershi/article/details/4084981

但不能进行数据库中用户唯一性验证。因为不能与数据库相连。


但是据说Ajax可以验证用户的唯一性。没有用过。不太清楚。


服务器端控件:主要是runat = “server”的控件。

现在关键的问题是:如何在runat ="server"的控件上进行客户端的验证。刚刚看了一个博客,里面涉及到了这块,先贴出来,再实现一下。

OnClick这一关键词,它是客户端JS脚本中的关键词,也是ASP.NET服务器控件中的控件属性,后者实际就是OnServerClick。

        不同之处是前者发生在客户端,由浏览器完成操作,而后者需要回送到服务器端,由服务器端运行。

        如果对于一般的HTML中的代码,非服务器端控件的,可以使用OnClick来定义一个客户端事件,OnSeverClick是在服务器端脚本调用的方法 .

        如一个Button服务器控件,它可以同时具备客户端和服务器端的OnClick,发生的顺序是先客户端再服务器端。但是在定义的时候需要注意:

        在页面中的 
<asp:Button id="cmdReturn2" runat="server" OnClick="ReturnFile">Return</asp:Button> 
中的这个OnClick定义的是服务器端事件,因为这是控件,ReturnFile是在代码中定义的方法。

        而如果需要同时存在客户端JS中的Onclick,那需要通过在代码中的Button.Attributes.Add("onclick","return CheckMailBox();")来加入,是将CheckMailBox()的结果返回给onclick事件,注意 ("onclick", "return CheckMailBox") 和 ("onclick ","return CheckMailBox") 是有区别的,前者如果返回false,onclick事件将不执行,后者无论返回什么值都回执行下去。

       实际上asp.net封装了很多东西,方便的同时也让很多刚学的人弄不明白怎么回事,比如上面说的服务器端click事件。其实这不是一个真正的事件,仅仅是让你有事件的感觉而已,本质其实就是POST提交表单而已,如果微软改服务器端OnClick事件名称为OnSubmit可能更好理解些。


问题的解决:采用的asp.net中的验证控件。详细见下面的blog链接


原创粉丝点击