jQuery.validate的使用

jQuery.validate是用js来编写的jquery验证框架。下面来谈下各种使用方法吧

首先需要引入jquery.js和validate.js,然后,载入validate函数,

<script src="./jquery-1.7.js" type="text/javascript"></script>
<script src="./jquery.validate.js" type="text/javascript"></script>
$(document).ready(function(){
    $("#form").validate({
     //写规则等内容
  })
})

*validate()函数要写在body中,才能更好的实行验证功能

*错误提示的文字内容是可以修改的,除以下修改方法,还可以在源文件里修改。也可以自定义错误图示,改此代码:

    <style type="text/css">
        /************jQuery.Validate插件样式开始********************/
    label.error
        {
            background: url(images/error.png) no-repeat 0px 0px;
            color: Red;
            padding-left: 20px;
        }
        input.error
        {
            border: dashed 1px red;
        }
        /************jQuery.Validate插件样式结束********************/
    </style>

*内置验证规则
required:true 必输字段
remote:"check.php" 使用ajax方法调用check.php验证输入值
email:true 必须输入正确格式的电子邮件
url:true 必须输入正确格式的网址
date:true 必须输入正确格式的日期
dateISO:true 必须输入正确格式的日期(ISO),例如:2010-01-01,2010/01/01 只验证格式,不验证有效性
number:true 必须输入合法的数字(负数,小数)
digits:true 必须输入整数
creditcard: 必须输入合法的信用卡号
equalTo:"#field" 输入值必须和#field相同
accept: "gif|png|jpg" 输入拥有合法后缀名的字符串(上传文件的后缀),多个后缀之间用’|’隔开
maxlength:5 输入长度最多是5的字符串(汉字算一个字符)
minlength:10 输入长度最小是10的字符串(汉字算一个字符)
rangelength:[5,10] 输入长度必须介于 5 和 10 之间的字符串")(汉字算一个字符)
range:[5,10] 输入值必须介于 5 和 10 之间
max:5 输入值不能大于5
min:10 输入值不能小于10

 某些属性值中的引号不能省略,否则出错。如accept、equalTo等
*远程验证
1, remote是远程验证:比如注册验证用户名是否已被注册,远程地址的返回值只能是true(验证成功)或false(验证失败)。例:

    var Validate= function(){$("#form1").validate({
        rules: {
            name: {
                required: true,
                minlength: 2,
                remote: {
                    url: "./check.php",  //去ajax请求一个验证名字的处理
                    type: "post",
                    data: {
                    account: function() {return $("#name").val();}  //post发送account=输入的值
                    }
               }
            }
        },

 

check.php:   
if ($this->MODEL->checkName ( $this->input->post ( 'account' ) )) { return json_encode ( '用户名已存在!' ); } else { return json_encode ( TRUE ); }

 

 

 

*还可以自定义验证规则

除了内置的验证规则,validation还允许自定义验证规则。这是通过validation的addMethod()方法实现的,语法 为:
jQuery.validator.addMethod("name",function,message)
其中:
1, name为验证规则的名称
2, function定义验证的规则。参数有?。返回值为?。
3, message是验证失败时的提示信息。

*可以控制表单submit提交

$(document).ready(function(){
    $("#form").validate({
        submitHandler:function(){  //提交时触发时,可以在里面控制不提交
            alert("submitted");   
                       //这样的情况表单是提交不了的。
                  如果想提交表单, 需要使用form.submit()而不要使用$(form).submit()
} debug:true //只验证不提交 }) })

*debug只验证不提交表单

如果这个参数为true,那么表单不会提交,只进行检查,调试时十分方便

 

$().ready(function() {
 $("#signupForm").validate({
        debug:true
    });
});

 

如果一个页面中有多个表单都想设置成为debug,用

$.validator.setDefaults({
   debug: true
})

*更改错误信息显示的位置

errorPlacementCallback 

 Default: 把错误信息放在验证的元素后面 
指明错误放置的位置,默认情况是:error.appendTo(element.parent());即把错误信息放在验证的元素后面

 

errorPlacement: function (error, element) {
            error.appendTo($("div[name='msg']"));//在name为msg的div后面显示错误信息
        }

 

 

 

 

*每个字段验证通过执行函数

successString,Callback
要验证的元素通过验证后的动作,如果跟一个字符串,会当做一个css类,也可跟一个函数

 

success: function(label) {
    // set &nbsp; as text for IE
    label.html("&nbsp;").addClass("checked");
    //label.addClass("valid").text("Ok!")
}

 

添加"valid" 到验证元素,CSS中定义的样式<style>label.valid {}</style>
例:success: "valid"

 

 

*重置表单

$(docment).ready(function() {
 var validator = $("#signupForm").validate({
        submitHandler:function(form){
            alert("submitted");   
            form.submit();
        }    
    });
    $("#reset").click(function() {
        validator.resetForm();
    });

});

*部分功能实验样例

<html>
<head>
<script src="./jquery-1.7.js" type="text/javascript"></script>
<script src="./jquery.validate.js" type="text/javascript"></script>

</head>
<body>
<form action="./run.php" method="post" id="form">
    名字:<input type="text" name="username" /><br />
    密码:<input type="password" name="password" id="password" /><br />
    确认密码:<input type="password" name="repassword" /><br />
    邮箱:<input type="text" name="email" /><br />
    网址:<input type="text" name="url" /><br />
    日期:<input type="text" name="date" /><br />
    <input type="submit" value="提交" />
</form>
<script>
$(document).ready(function(){
    $("#form").validate({
        rules:{     //规则
            username:"required",
            email:{
                required: true,
                email: true    
            },
           password: {
                required: true,
                minlength: 5
            },
           repassword: {
                required: true,
                minlength: 5,
                equalTo: "#password"
           }                
        },
        messages: {   //重新制定提示信息,也可以使用默认的,当然也可以直接在validate.js文件去找到并修改
           firstname: "请输入姓名",
           email: {
            required: "请输入诛仙Email地址",
            email: "请输入正确的诛仙email地址"
           },
           password: {
            required: "请输入诛仙密码",
            minlength: jQuery.format("密码不能诛仙小于{0}个字 符")
           },
           repassword: {
            required: "请输入确认密码",
            minlength: "确认密码不能小于5个字符",
            equalTo: "两次输入密码不一致诛仙不一致"
           },
         },
        success:function(){
             //每输入合理完成后后,执行。
        },
        submitHandler:function(){  //提交时触发时,可以在里面控制是否提交
            alert("submitted");   
            //form.submit();  //提交表单 
        },
        debug:true //只验证不提交
    })
})
</script>
</body>
</html>

 

posted @ 2013-04-25 10:34  静心聆听  阅读(366)  评论(0编辑  收藏  举报