zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    杭电2074
    关于大整数n!的问题!
    杭电2053
    大整数乘法(高精度)
    JS:获取框架内容
    JQ:hover延迟效果
    jQ+Ajax+PHP 简单实例
    js节省document.getElementById("xxx")的方法
    QQ一键登录功能的实现过程
    点击文字出现文本框
  • 原文地址:https://www.cnblogs.com/houweijian/p/3041894.html
Copyright © 2011-2022 走看看