jquery-validate 表单验证插件

表单验证插件 Jquey.validate.js

1、使用:需要引入jquery.js和validate.js两个文件,然后给表单进行验证、在代码中加入:

  $("#Form").validate();

 

2、验证规则:在需要校验的元素中加上如:class=”{required:true, rangelength:[6,16]}”

【注:class="{}"的方式,需要引入包:jquery.metadata.js】

  required  -> 必填字段

  email  -> 正确的邮箱格式

  url  -> 正确的url地址

  number  -> 数字

  equalTo:”.confirmpwd”  -> 与类名为confirmpwd的值一致

  maxlength: 5  -> 最大长度为5

  minlength:2  -> 最小长度为2

  rangelength:[6,16]  -> 长度在6-16之间

  max:6  -> 值不超过6

  min:2  -> 值不小于2

  range:[2,6]  -> 值在2-6之间

插件自带的验证规则类似还有digits、creditcard、accept等

除以上列举的验证规则外,插件还支持用户自定义增加验证规则,这将在第5点中详细介绍。

 

3、错误提示:插件自带有验证失败后错误信息提示,我们可以更改错误提示信息的内容和提示信息的位置。

(1)更改提示内容:

  默认提示信息

   

下面这段代码的作用就是用来设置提示信息,在使用此插件时、可以改变默认提示信息,如下。

$.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} 的值")
});


除此之外,还可以通过class="{required:true, messages:  {required:'此项必填'}    }"这样的方法来修改提示内容。

 

(2)更改提示信息的位置

  errorPlacement: function(error, element) { 
       error.appendTo(element.parent()); 
  }

  红色部分就是目标位置,根据不同的需求来改变这里的值。

 

4、在js代码中写入校验规则 

$("#myform").validate({
  rules:{
    email:{
      required:true,
      email:true
    },
    password:{
      required:true,
      rangelength:[6,16]
    },
    confirm_password:{
      equalTo:"#password"
    }
  },
  messages:{
    email:{
      required:"必填",
      email:"E-Mail格式不正确"
    },
    password:{
      required: "不能为空",
      rangelength: $.format("密码最小长度:{0}, 最大长度:{1}。")
    },
    confirm_password:{
      equalTo:"两次密码输入不一致"
    }
  }
});

对应表单

<form id="myform" method="post" action="">
  <p>
    <label for="email">EMail:</label>
    <input id="email" name="email" />
  </p>
  <p>
    <label for="password">密码:</label>
    <input id="password" name="password" type="password" />
  </p>
  <p>
    <label for="confirm_password">确认密码:</label>
    <input id="confirm_password" name="confirm_password" type="password" />
  </p>
  <p>
    <input class="submit" type="submit" value="立即注册" />
  </p>
</form>

这种写法,不需要在input的class中添加繁琐的一大串规则,相比较来说整体更加清晰,所有的操作与校验都写在js中,rules给元素添加校验规则,而messages是给元素添加校验结果的提示信息。。【注:最好给input添加name和id属性,且属性值相同。】

 

5、自定义验证方法和重写校验方法:

(1)自定义验证方法:  addMethod:name, method, message

添加了自定义的校验规则后,就可以用第4点介绍的写法,对输入内容进行校验:secret 中内容必须=“buga”

 

$("#Form).validate({
  rules: {
    number: {
      required:true,
      minlength:3,
      maxlength:15,
      number:true
    },
    secret: "buga",
    math: {
      equal: 10 
    }
  }
});

对应表单

<form id="Form" method="get" action="">

  <input id="number" name="number" title=" 请填写3-15个数字" />

  <input name="secret" id="secret" title=" 请填写密码/>


  <label for="math">5 + 5 = </label>
  <input id="math" name="math" title="请填写答案" />


  <input class="submit" type="submit" value="Submit"/>
</form> 

 

(2)重写:  重新定义校验规则  

 $.validator.methods.equal = function(value, element, param) {
    return value == param;
 };

 

6、其他

(1)debug模式:  只进行校验、不提交表单

 $("#Form").validate({ debug: true })

(2)忽略元素:  ignore,不验证某些元素

 $("#Form).validate({ignore: "ignore" })

(3)验证时间:(可以根据需要自行设置验证时间,下面展示的是提交时不验证 失去焦点时验证)

 $("#Form).validate({
  onsubmit: false,
  onfocusout: true
 })

(4)成功回调:  验证成功后执行的

   $("#Form).validate({
      success:function(){
        //成功后执行操作
      },
   })

 

posted @ 2015-07-26 16:05  夕阳下·美了Jay影  阅读(252)  评论(0)    收藏  举报