jQuery应用系列之 通过遍历进行快速表单验证

时间:2008-04-21 09:45:21      类别:HTML客户端, Web技术|WEB Tech      本文链接:生活点滴Enjoy Life

在很多情况下,我们对表单中的某些字段需要在客户端做简单的js验证,比如不能为空。按照传统的方式,我们可能就会去写一个函数来一个一个判断表单中的字符是否为空,为空则返回false,譬如:

  1. function validForm(){
  2. if( ( document.getElementById('name').value.length < 1 )
  3.    &&( document.getElementById('pass').value.length < 1 )
  4.    &&( document.getElementById('email').value.length < 1 )
  5.    &&( document.getElementById('tel').value.length < 1 )
  6.    &&( document.getElementById('gendar').value.length < 1 )){
  7.       alert('带有*号的部分不能为空');return false;
  8.  }
  9. }

那么如果使用了jQuery这一切可能便得更加简单,譬如下面这个表单
  1. <form id="reg" action="" method="post">
  2. <input type="text" class="important" id="name" name="name" />*<br />
  3. <input type="text" class="important" id="email" name="email" />*<br />
  4. <input type="text" class="important" id="gender" name="gender" />*<br />
  5. <input type="password" class="important" id="pass" name="pass" />*<br />
  6. </form>

不知道你是否注意到,上面凡是打*好的表单域,我都用了一个css属性,那就是”important”,这样的好处有两点,1.我们可以在css中将必须填写的字段用特殊的样式表来显示;2.方便在jquery中遍历,下面是jquery简单表单验证的函数
  1. function validForm(){
  2. var is_not_valid = false;
  3.         $("#reg input.important").each(function(i){//遍历id=reg中的class=important的表单
  4.                 if(this.value.length < 1){//如果表单为空
  5.                         i ++ ;//增加i
  6.                         is_not_valid =  true;
  7.                         if( i < 2 )//因为这个遍历循环无法用break跳出,只能通过i自增的方式让js只弹出一次alert
  8.                                 alert('带星号的必须填写');
  9.                         this.focus();
  10.                 }
  11.         });
  12.         if( is_not_valid ) return false;
  13. }

表单域太少,所以也许你看不到这个的优点何在,但是一旦不能为空的表单数量很多,优势就明显了!

标签:,
发表于 2008-04-21 09:45:21 目录:HTML客户端, Web技术|WEB Tech [RSS 2.0] 你可以发表评论, 或者从您的网站 trackback
如果您喜欢本blog,欢迎你的feed订阅,谢谢你的支持

前4排已经被占据了 快抢好位置哦

  • 1楼 muzik 在 2008.04.21 12:23发表评论如下:

    我也补充几句
    this.value在JQuery里一般写作$(this).val(),也可以写作$(this).attr(’value’)
    if(this.value.length < 1)则可以写作if($(this).val()==”)
    传统的JS写法让我比较的纠结 所以习惯全用JQuery的写法

    JQuery有一些非官方的form插件和Validation插件,写的很完备,含空值校验、长度校验、email和uri之类固定格式校验等等常用校验。需要的时候也可以直接取用。

    • 2楼 cosβ 在 2008.04.21 12:30发表评论如下:

      呵呵,我比较喜欢写短一点嘛,精简代码,所写成this.value,插件我用得少,不想因为少量的应用而引入大量的js!alert做举例使用,一般的话我会用div高亮来提示呢!

      • 3楼 muzik 在 2008.04.21 12:48发表评论如下:

        那是 this.value.length应该还比$(this).val()快一点

  • 4楼 muzik 在 2008.04.21 12:24发表评论如下:

    另,alert很让人不爽…

  • 转到第
(Required)
(Required, not published)
如果留言未显示请不要重复留言,我将为你恢复!


生活点滴Enjoy Life is proudly powered by WordPress | admin| About Us | cosbeta| Bluehost| site map 0.432s & 27