jQuery.validate插件

来源:互联网 发布:王者荣耀优化安卓7.0 编辑:程序博客网 时间:2024/06/08 13:27

一. jQuery.validate插件的作用


jquery.validate插件可以迅速验证一些常见的输入,还可以自己扩充自己的验证方法,并且对国际化也有很好的支持。


:知识点说明

2.1基础

1. 指定验证规则的方式(把验证规则写到字段元素的class属性中)如下:

用户名:<input type="text" name="userName" class="required">

密码:<input type="password" name="password1" id="password1" class="{required: true, minlength: 13}">

再次输入密码:<input type="password" name="password1" class="{equalTo:'[#password1]'} required"> 

2, 指定多个clas(验证规则),多个class名称之间用空格隔开,如:class="password1 password2"。

3, 使用JSON对象,可以指定多个属性,如:class="{required: true, minlength: 13}"。可以为某验证规则指定所用的参数,如minlength规则需要指定最小长度,这里为13。

4,若使用到JSON对象,就要导入:jquery.metadata.js,其作用是作用是解析JSON对象。

5, 可以多个验证混合使用,如:class="{equalTo:'[#password1]'} required"。

6, 如果表单字段的name不能重复,则只有最前面的配置起作用。

7. 调用validate()方法时指定验证规则

$(function() {

$("#testForm").validate({

rules: {

userName:{ required: true, minlength: 1},

password1: { required: true },

password2: { equalTo: "#password1" }

}

});

});

2.2 可以使用哪些验证规则(内置的验证规则)


1, remote是远程验证

例如验证用户名是否已被注册,返回值为布尔值。在访问指定的url时,会自动把当前字段的值做为参数传递过去(以字段的name值为key,value为参数值)。但需要注意的是:当添加一个用户后,再次添加一个同名的用户,validate不能提示该用户已存在,这是由于缓存造成的,jquery仍认为该用户名可用。解决方法是在页面中添加如下代码:

$().ready(function(){

$.ajaxSetup ({

cache: false //关闭ajax相应的缓存

});

});


2, 某些属性值中的引号不能省略,否则出错。如accept、equalTo等,因为这时他需的是一个字符串。

3.默认验证规则
(1)required:true               // 必输字段
(2)remote:"check.action"    //  使用ajax方法,远程验证
(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

另:常用于表单中需要同时填或不填的元素

required:"#aa:checked"表达式的值为真,则需要验证
required:function(){}返回为真,表时需要验证


四.默认提示
messages: {
    required: "This field is required.",
    remote: "Please fix this field.",
    email: "Please enter a valid email address.",
    url: "Please enter a valid URL.",
    date: "Please enter a valid date.",
    dateISO: "Please enter a valid date (ISO).",
    dateDE: "Bitte geben Sie ein g眉ltiges Datum ein.",
    number: "Please enter a valid number.",
    numberDE: "Bitte geben Sie eine Nummer ein.",
    digits: "Please enter only digits",
    creditcard: "Please enter a valid credit card number.",
    equalTo: "Please enter the same value again.",
    accept: "Please enter a value with a valid extension.",
    maxlength: $.validator.format("Please enter no more than {0} characters."),
    minlength: $.validator.format("Please enter at least {0} characters."),
    rangelength: $.validator.format("Please enter a value between {0} and {1} characters long."),
    range: $.validator.format("Please enter a value between {0} and {1}."),
    max: $.validator.format("Please enter a value less than or equal to {0}."),
    min: $.validator.format("Please enter a value greater than or equal to {0}.")
},

可以修改默认提示,

jQuery.extend(jQuery.validator.messages, {
  required: "这是必选字段",
  remote: "改字段已存在",
  email: "电子邮件格式错误",
  url: "非法网址",
  date: "非法日期",
  dateISO: "非法日期 (ISO).",
  number: "非法数字",
  digits: "请输入整数",
  creditcard: "非法信用卡号",
  equalTo: "请输入相同的值",
  accept: "非法后缀名",
  maxlength: jQuery.validator.format("请输入长度最多是 {0} 的字符串"),
  minlength: jQuery.validator.format("请输入 长度最少是 {0} 的字符串"),
  rangelength: jQuery.validator.format("请输入长度介于 {0} 和 {1} 之间的字符串"),
  range: jQuery.validator.format("请输入介于 {0} 和 {1} 之间的值"),
  max: jQuery.validator.format("请输入最大为{0} 的值"),
  min: jQuery.validator.format("请输入最小为{0} 的值")

});



三:例子:
例子一

$().ready(function() {
 $("#loginForm").validate({
        rules: {
   userName: "required",


   password: {
    required: true,
    minlength: 10
   },


   confirm_password: {
    required: true,
    minlength: 5,
    equalTo: "#password"
   }

  },


  messages: {
   userName: "请输入姓名",


   password: {
    required: "请输入密码",
    minlength: jQuery.format("密码不能小于{0}个字 符")
   },
   confirm_password: {
    required: "请输入确认密码",
    minlength: "确认密码不能小于{0}个字符",
    equalTo: "两次输入密码不一致不一致"
   }
  }
    });
});




例子二;

1, 导入的jQuery.js与jquery.validate.js等文件,注意导入的顺序 

<script type="text/javascript" src="jquery.js">

<script type="text/javascript" src="jquery.metadata.js"> //用于解析json对象

<script type="text/javascript" src="jquery.validate.js">

 2, 指定哪个(或哪些)表单要在提交前先进行验证

<script type="text/javascript">

$(function(){

$("#validateForm").validate();
});
</script>

3, 指定每个字段的验证规则

<input type="text" name="loginName" class="required">               //class="required" 表示本字段必须要填写。


扩展:可以自定义验证方法及其他待续,




0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 眼罩里面的蓝色液体干了怎么办 新买的饮水机有塑料味怎么办 白色衣服被洗衣液染荧光了怎么办 衣服碰到了酒店的毛巾被单怎么办 防晒喷雾弄衣服上有荧光怎么办 剑网3重置版删除后有残留怎么办 在超市买到变质的水果怎么办 微信官方电话一直打不通怎么办 对方欠货款股东换了不还怎么办 闲鱼买的东西确认收货有问题怎么办 不让微信好友看到吃鸡的名字怎么办 金鹰贵宾积分卡过期了怎么办 小宝机器人一直停在联网界面怎么办 手机版的有道云笔记忘记邮箱怎么办 钡灌肠复查钡剂排空不良怎么办 两个月宝宝灌肠后不排便怎么办 一岁宝宝肠套叠灌肠后拉肚子怎么办 苹果手机自带的天气没有了怎么办? 衣服在洗衣机里忘记拿出来怎么办 苹果se手机系统占内存太大怎么办 客人把饭店老板打了民警怎么办 商场嫌品牌低端不让入驻怎么办 带着孩子坐飞机座位不在一起怎么办 公司老板跑路了员工该怎么办 超市买的衣服防盗扣忘记取了怎么办 在超市买的衣服那个扣没取怎么办啊 超市散称商品条码老记不住怎么办 app账号密码忘记了怎么办注销难 幼儿老师遇到家长比较孩子该怎么办 发的微信公众号内容重复了怎么办 招嫖诈骗微信转账被骗怎么办 朋友在深圳龙岗被传销骗了要怎么办 怀疑家里人被传销组织骗去了怎么办 怀疑家人被骗进传销了该怎么办 b本扣3分了怎么办2018 抖音里面就剩人头的视频怎么办 自学参加普通高考那小高考怎么办 如果小学生长胸只长了一个该怎么办 脸上毛多导致的毛孔粗怎么办 吃了激素药头发掉的厉害怎么办 剪发的剪子中间的螺丝扣总掉怎么办