• 好用的表单验证插件


        在做项目过程中,使用了jquery的一个验证表单的插件--jquery validation。这里简单整理了一下这个强大的表单验证插件的一些常用的方法,以及在使用过程中需要注意的地方。
     
        首先要想使用,首先需要引入jquery,然后引入jquery validation两个文件。然后通过插件的初始化方法,进行初始化,之后就可以按照自己的需要进行使用了。
        
    //引入jquery,版本1.6+
        <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
        //引入jquery validation
        <script type="text/javascript" src="http://jqueryvalidation.org/files/dist/jquery.validate.min.js"></script>
     
        下面简单介绍一下使用方法,他有两种使用方式,第一种,直接将验证的方式写在标签上,这个我个人不是很喜欢,感觉不够分离;我比较喜欢第二种方式,通过JS配置表单需要验证的字段,然后就行提交操作。插件内部提供了一些常用的验证方法。
    序号规则描述
    1 required:true 必须输入的字段。
    2 remote:"check.php" 使用 ajax 方法调用 check.php 验证输入值。
    3 email:true 必须输入正确格式的电子邮件。
    4 url:true 必须输入正确格式的网址。
    5 date:true 必须输入正确格式的日期。日期校验 ie6 出错,慎用。
    6 dateISO:true 必须输入正确格式的日期(ISO),例如:2009-06-23,1998/01/22。只验证格式,不验证有效性。
    7 number:true 必须输入合法的数字(负数,小数)。
    8 digits:true 必须输入整数。
    9 creditcard: 必须输入合法的信用卡号。
    10 equalTo:"#field" 输入值必须和 #field 相同。
    11 accept: 输入拥有合法后缀名的字符串(上传文件的后缀)。
    12 maxlength:5 输入长度最多是 5 的字符串(汉字算一个字符)。
    13 minlength:10 输入长度最小是 10 的字符串(汉字算一个字符)。
    14 rangelength:[5,10] 输入长度必须介于 5 和 10 之间的字符串(汉字算一个字符)。
    15 range:[5,10] 输入值必须介于 5 和 10 之间。
    16 max:5 输入值不能大于 5。
    17 min:10 输入值不能小于 10。
    举一个简单的例子使用上面的方法:
    <form> 
     邮箱:<intput type="text" name="email">
    <input type="submit" value="提交">
    </form>
    <script>
    //以下是一个基本的表单验证的构造
    $('from').validate({
        debug: true, //调试模式,只验证不提交
        rules: {    //所有的验证规则都写在这里
            email: {
                required: true,    //必填项
                email: true,    //邮箱格式
    			remote:{
    				type:"POST",
    				url:"/user/checkemail",  //检测地址
    				data:{
    					email: function() { return $("input[name=email]").val()} //获取邮箱
    				},
    				dataFilter: function(data) { //data为字符串
    					data = $.parseJSON(data);
    					if(data.errno) {
    						return false;
    					}else {
    						return true
    					}
    				}
    			}
            }
        },
        messages: {    //所有验证规则的错误提示写在这里
            email: {
                required: '请填写电子邮箱',
                email: '请填写正确格式的电子邮箱',
    			remote: '邮箱已注册'
            }
        }
    });
    </script>
    

      

        当然,有些时候我们在提交的时候可能会对某些字段单独处理,jquery validation提供了这样的方法让我们进行验证。以上面为例子:
    $('input[name=email]').rules('add', {
        required: true,
        email: true
    });
    //可以使用 $.rules('remove', {}),删除规则
        以上是它提供的一些常用的验证方法,当然在我们项目中,大部分情况下,我们是会有复杂的逻辑,导致我们不能使用上述提供的方法,需要我们自己实现一些验证方法。不过,不用担心这个强大的插件也提供了很好的扩展方法,同样的也以上面为例。
    $.validator.addMethod('email', function(emailValue,  element, param) {
        var reg = /^([a-zA-Z0-9]+[_|\_|.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|.]?)*[a-zA-Z0-9]+.[a-zA-Z]{2,3}$/;
        if(reg.test(emailValue)) {
            return true;
        }
        return false;
    });
        插件默认提供了展示错的位置以及内容,同时插件提供了修改错误容器和class的方法:
    参数类型描述默认值
    errorClass String 指定错误提示的 css 类名,可以自定义错误提示的样式。 "error"
    errorElement String 用什么标签标记错误,默认是 label,可以改成 em。 "label"
    errorContainer Selector 显示或者隐藏验证信息,可以自动实现有错误信息出现时把容器属性变为显示,无错误时隐藏,用处不大。
    errorContainer: "#messageBox1, #messageBox2"
     
    errorLabelContainer Selector 把错误信息统一放在一个容器里面。
     
    wrapper String 用什么标签再把上边的 errorELement 包起来。
    另外还可以通过,errorPlacement和success监听,成功和失败,举例如下:
    //设置默认的规则
    $.validator.setDefaults({
        errorPlacement: function(errmsg, element) {
            //errmsg:错误信息(可以通过messages自定义);element错误的元素
        },
        success: function(label, element) {
            //label:显示正确信息的容器;element:验证通过的元素
        }
    });
    与此同时,插件还提供了以下比较有用的方法:
    1.submitHandler
    可以在提交前,做一些自己想要做的判断
     
    2.debug
    可以测试的时候使用,只验证不提交
     
    3.ignore
    忽略不需要验证的元素,值是选择器
     
    4.remote
    可以进行异步校验
     
    5.resetForm
    重置表单
     
    6.format
    可以对规则中的参数代替模版中的{n}
     
    更多的方法可以查看验证组件的官网进行查看。
     
    这里特别要说的是,需要注意select、radio、checkbox的时机,这里有一个小技巧,在无法触发select展示错误的时候,可以在errorPlacement中,执行一下$(element).blur()方法。
     
    插件也提供了一些触发方式可以进行配置,如:onsubmit、onfocusout、onkeyup、onclick、focusInvalid、focusCleanup
     
    2014-11-13:
    浏览器兼容性:IE6+,chrome,firefox,safari,opera10+
    最好使用以下jquery版本(官方测试):1.6.4 1.7.2 1.8.3 1.9.1 1.11.1
    亲测:IE6下 1.9.0有问题,换成1.9.1问题解决
     
     
     
    参考资料:
     
  • 相关阅读:
    PHP 页面编码声明方法详解(header或meta)
    淘客部分功能实现源码
    CSS3动画效果应用
    JavaScript之Tab标签(原始版)
    JavaScript之淡入淡出
    关于响应式布局
    深入理解 SVG 系列(一) —— SVG 基础
    面试题
    随记
    一道经典面试题-----setTimeout(function(){},0)
  • 原文地址:https://www.cnblogs.com/xiaoheimiaoer/p/4086131.html
Copyright © 2020-2023  润新知