黑马程序员技术交流社区

标题: 【广州前端】- jquery validate强大的jquery表单验证插件 [打印本页]

作者: 李盼盼老师    时间: 2017-12-17 13:03
标题: 【广州前端】- jquery validate强大的jquery表单验证插件
本帖最后由 李盼盼老师 于 2017-12-21 20:17 编辑

jquery validate强大的jquery表单验证插件
查看更多前端资源
【简介】
      form表单验证是网站建设中,前端必须做的事情之一,而要自己想一个玩美的没有bug的表单验证,是非常不容易的,这里给大家分享一个基于jquery的强大的表单验证插件,几乎可以满足我们对表单验证的需求,  如果你的网站不可使用jquery,那很抱歉,你无法使用这个插件!
jquery validate表单验证如何使用
在引入jquery validate插件前,需要先引入它所依赖的文件jquery.js
[JavaScript] 纯文本查看 复制代码
<script src="jquery-1.8.2.min.js"></script>
<scriptsrc="jquery.validate.js"></script>
一、关键代码介绍
1.     html代码
[HTML] 纯文本查看 复制代码
<form action="js/test.json" method="post" class="bl-form bl-formhor" id="jsForm">

        <ul>

             <li class="bl-form-group">

                <label><em>*</em>必填:</label>

                <div class="controls">

                   <input id="pwdid" class="fn-tinput" data-rule-remote="http://www.baidu.com" type="password" name="OldPassword" placeholder="原始密码" required data-msg-required="请输入原始密码" minlength="6" data-msg-minlength="至少输入6个字符" />

                </div>

            </li>

            </li>

            <li class="bl-form-group">

                <label>手机:</label>

                <div class="controls">

                    <input type="text" value="" name="3" class="fn-tinput" placeholder="手机号" required data-rule-mobile="true" data-msg-required="请输入手机号" data-msg-mobile="请输入正确格式" />

                </div>

            </li>

           ………….

            <li class="bl-form-group bl-form-btns">

                <label class="fn-vhid">提交:</label>

                <div class="controls">

                    <button class="fn-btn btn-primary btn-submit submitBtn" type="submit">提交按钮</button>

                       <button type="reset" class="fn-btn">重置</button>

                </div>

            </li>

        </ul>

</form>


2.    Css代码
表单的样式是随手写了一下,只是看起来稍微好看一点,样式不是重点,验证规则与书写方法和样式无关,可以自行定义
3.    Js代码
[JavaScript] 纯文本查看 复制代码
$(function(){

//$('.jsForm') 是你的表单的类名或者 id,如果是id的话就是 $('#jsForm')

    //submitHandler 就是表单验证通过的时候执行里面的函数

$('.jsForm').validate({            

        submitHandler: function (form) {

            var $form = $(form),

                data = $form.serialize();     //序列化表单数据

            //这里是jquery表单验证通过的时候执行的操作,比如这里,表单验证通过的时候执行了jquery的ajax的post操作     

            $.post('js/test.json',{data:data},function(d){

                if(d.Flag){

                    alert("如果返回为真,将执行这里代码")              

                }else{



                }

            },'json');

        },

        onfocusout: function(element){  //这个设置是,让表单元素失去焦点后,就验证, 如果不需要,则删掉

             $(element).valid();

    }

});

})
二、jquery validate默认验证规则的提示语中文化
       因为jquery validate插件中的提示词,默认是英文的,所以我们先把它中文化
       $.extend($.validator.messages, {
        required: "必填",
        remote: "请修正该字段",
        email: "电子邮件格式不正确",
        url: "网址格式不正确",
        date: "日期格式不正确",
        dateISO: "请输入合法的日期 (ISO).",
        number: "请输入数字",
        digits: "只能输入整数",
        creditcard: "请输入合法的信用卡号",
        equalTo: "请再次输入相同的值",
        accept: "请输入拥有合法后缀名的字符",
        maxlength: $.validator.format("请输入一个 长度最多是 {0} 的字符"),
        minlength: $.validator.format("请输入一个 长度最少是 {0} 的字符"),
        rangelength: $.validator.format("请输入 一个长度介于 {0} {1} 之间的字符"),
        range: $.validator.format("请输入一个介于 {0} {1} 之间的值"),
        max: $.validator.format("请输入一个最大为{0} 的值"),
        min: $.validator.format("请输入一个最小为{0} 的值")
});
三、validate默认的验证规则中文解释
            (1)required:true 必输字段
(2)remote:”check.php”使用ajax方法调用check.php验证输入值
(3)email:true 必须输入正确格式的电子邮件
(4)url:true 必须输入正确格式的网址
(5)date:true 必须输入正确格式的日期
(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
validate的默认验证规则是什么意思?
假如,一个表单元素的要求是必填,那么就在这个表单元素中加一个required 属性

如果这个元素没有填写内容,就会出现提示词


. 自定义validate表单验证规则
addMethod(name,method,message)方法:
参数name 是添加的方法的名字
参数method是一个函数,接收三个参数(value,element,param) value 是元素的值,element是元素本身 param是参数
以手机号码验证规则为例:
jQuery.validator.addMethod("mobile",function (value, element) {
    var mobile = /^1[3|4|5|7|8]\d{9}$/;
       return this.optional(element) ||(mobile.test(value));
}
那么在表单元素中的属性设置为data-msg-mobile=“提示信息”

. 详细代码,请看案例
链接: https://pan.baidu.com/s/1o7GyaL0 密码: uesc






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2