当前位置: 代码迷 >> Web前端 >> jQuery应验框架(五)验证器 (jQuery validation)
  详细解决方案

jQuery应验框架(五)验证器 (jQuery validation)

热度:486   发布时间:2012-10-30 16:13:36.0
jQuery验证框架(五)验证器 (jQuery validation)

jQuery验证框架

五、验证器( Validator )
??????????? validate方法返回的验证器对象( Validator Object) 有一些公用的方法。你可以用来触发验证程序或改变表单(form)的内容。验证器对象有更多的方法,不过只有文档中给出的这些方法是专为使用而设计的。

(一)验证器方法(Validator methods)
[1]? form() ????? 返回:Boolean
????? 说明:验证表单是否通过验证,若通过验证则返回true,反之返回false。这个方法在正常的提交事件(submit event)触发,它返回一个结果。

Js代码 复制代码
  1. $("#myform").validate().form();??
$("#myform").validate().form();


[2]? element( element ) ????? 返回:Boolean
????? 参数 element ???? 类型:Selector??? 验证表单中的一个需要验证的表单元素。
????? 说明:验证单个表单元素是否通过验证,若通过验证则返回true,反之返回false。这个方法在正常的焦点离开事件(blur)或按键弹起(keyup)时触发,它返回一个结果。

Js代码 复制代码
  1. $("#myform").validate().element(?"#myselect"?);??
$("#myform").validate().element( "#myselect" );


[3]? resetForm( ) ????? 返回:undefined
????? 说明:重置表单。
????????????????? 恢复表单元素到原来的值(需要form插件支持),移除无效验证的样式并隐藏错误消息。
????????????????? (...貌似只有在IE下才可以移除样式)

Js代码 复制代码
  1. var?validator?=?$("#myform").validate(); ??
  2. validator.resetForm();??
var validator = $("#myform").validate();
validator.resetForm();


[4]? showErrors( errors ) ????? 返回:undefined
????? 参数 errors ???? 类型:Object<String, String>??? 一个或多个表单元素的name属性和验证消息组成的键/值对。
????? 说明:显示指定的验证消息。
????????????????? 在指定的errorPlacement中显示验证消息。键为待验证表单元素的name属性,值为相应的验证消息。

Js代码 复制代码
  1. var?validator?=?$("#myform").validate(); ??
  2. validator.showErrors({"firstname":?"I?know?that?your?firstname?is?Pete,?Pete!"});??
var validator = $("#myform").validate();
validator.showErrors({"firstname": "I know that your firstname is Pete, Pete!"});


[5]? numberOfInvalids( ) ????? 返回:Integer
????? 说明:返回未通过验证的表单元素的个数。
????????????????? 这个方法依赖于内部的验证器情况。只有在验证完所有表单元素时才统计所有待验证的表单元素(submit事件或通过$("form").valid())。当只验证单个表单元素,则只有统计该表单元素。与invalidHandler选项联合使用的时候非常有用。

Js代码 复制代码
  1. var?validator?=?$("#myform").validate({ ??
  2. ????invalidHandler:?function()?{ ??
  3. ????????$("#summary").text(validator.numberOfInvalids()?+"field(s)?areinvalid"); ??
  4. ????} ??
  5. });??
var validator = $("#myform").validate({
    invalidHandler: function() {
        $("#summary").text(validator.numberOfInvalids() +"field(s) areinvalid");
    }
});



(二)验证器函数(Validator functions)
[1]? setDefaults( defaults ) ????? 返回:undefined
????? 参数 defaults ???? 类型:Options??? 要设置成默认值的选项。
????? 说明:修改验证框架的默认设置。
????????????????? 接受validate方法中的所有选项。

Js代码 复制代码
  1. jQuery.validator.setDefaults({? ??
  2. ????debug:?true? ??
  3. });??
jQuery.validator.setDefaults({ 
    debug: true 
});


[2]? addMethod( name, method, [message] ) ????? 返回:undefined
????? 参数 name???? 类型:String??? 要添加的方法名,用于标识和引用,必须是一个有效的javascript标识符。
????? 参数 method???? 类型:Callback??? 方法的实现部分,返回true如果表单元素通过验证。
????? 参数 message(Optional)???? 类型:String, Function??? 该方法的默认验证消息。可以用 jQuery.validator.format(value) 方法创建。如果未定义该参数,则使用本地已存在的验证消息,另外,必须为指定的表单元素定义验证消息。
????? 说明:添加一个用户自定义的验证方法。它由方法名(必须是一个合法的javascript标识符)、基于javascript的函数及默认的验证消息组成。

Js代码 复制代码
  1. jQuery.validator.addMethod("math",?function(value,?element,?params)?{? ??
  2. ????return?this.optional(element)?||?value?==?params[0]?+?params[1];? ??
  3. },?jQuery.format("Please?enter?the?correct?value?for?{0}?+?{1}"));??
jQuery.validator.addMethod("math", function(value, element, params) { 
    return this.optional(element) || value == params[0] + params[1]; 
}, jQuery.format("Please enter the correct value for {0} + {1}"));


[3]? addClassRules( name, rules ) ????? 返回:undefined
????? 参数 name???? 类型:String??? 要添加的样式规则名。
????? 参数 rules???? 类型:Options??? 规则选项。
????? 说明:添加一个复合的样式验证方法。对于将多个联合使用的规则重构进单个样式中非常有用。

Js代码 复制代码
  1. jQuery.validator.addClassRules("name",?{ ??
  2. ??required:?true, ??
  3. ??minlength:?2 ??
  4. });??
jQuery.validator.addClassRules("name", {
  required: true,
  minlength: 2
});


[4]? addClassRules( rules ) ????? 返回:undefined
????? 参数 rules???? 类型:Options??? 样式类名-规则表。
????? 说明:添加一个复合的样式验证方法。对于重构通用的联合规则非常有用。

Js代码 复制代码
  1. jQuery.validator.addClassRules({ ??
  2. ??name:?{ ??
  3. ????required:?true, ??
  4. ????minlength:?2 ??
  5. ??}, ??
  6. ??zip:?{ ??
  7. ????required:?true, ??
  8. ????digits:?true, ??
  9. ????minlength:?5, ??
  10. ????maxlength:?5 ??
  11. ??} ??
  12. });??
jQuery.validator.addClassRules({
  name: {
    required: true,
    minlength: 2
  },
  zip: {
    required: true,
    digits: true,
    minlength: 5,
    maxlength: 5
  }
});





原文请见:http://docs.jquery.com/Plugins/Validation

------------------------------------------------------------------------------

  相关解决方案