jQuery.validate验证实例

来源:互联网 发布:阿里云服务器怎么用 编辑:程序博客网 时间:2024/05/29 09:42
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>jquery.validate</title>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.validate.js"></script>
<style>
em{
    margin-left:5px;
}
.error {
    color: #ff0000;
}
</style>
</head>
<body>
<form id="tForm" method="get" action="">
    <p>
        <label for="name">姓名</label>
        <input name="name" />
    </p>
    <p>
        <label for="email">邮箱</label>
        <input name="email" />
    </p>
    <p>
        <label for="phone_num">手机号</label>
        <input name="phone_num" id="phone_num" />
    </p>
    <p>
        <input class="submit" type="submit" value="Submit"/>
    </p>
</form>
</body>
</html>
<script type="text/javascript" >
    $().ready(function() {
        $("#tForm").validate({
            errorElement:"em",
            submitHandler: function(form) {
                alert('submit');
            },
            rules: {
                name: {
                    required: true,
                    minlength: 2,
                    maxlength: 5
                },
                email: {
                    required: true,
                    email:true
                },
                phone_num: {
                    required: true,
                    isMobile:$('#phone_num').val()
                }
            },
            messages: {
                name: {
                    required: "请输入姓名",
                    minlength: "不少于2个汉字",
                    maxlength: "不超过5个汉字"
                },
                email: {
                    required: "请输入邮箱",
                    email:"邮箱格式有误"
                },
                phone_num: {
                    required: "请输入手机号"
                }
            }
        });
        $.validator.addMethod(
            "isMobile",
            function(value,element){
                var length = value.length;
                var mobile = /^0?(13|15|18|14)[0-9]{9}$/;
                return this.optional(element) || (length == 11 && mobile.test(value));
            },
            "请正确填写您的手机号码"
        );       
    });

</script>

附:jQuery.validate 中文API

名称

返回类型

描述

validate(options)

返回:Validator

验证所选的FORM

valid()

返回:Boolean

检查是否验证通过

rules()

返回:Options

返回元素的验证规则

rules("add",rules)

返回:Options

增加验证规则

rules("remove",rules)

返回:Options

删除验证规则

removeAttrs(attributes)

返回:Options

删除特殊属性并且返回他们

Custom selectors

:blank

返回:Validator

没有值的筛选器

:filled

返回:Array <Element >

有值的筛选器

:unchecked

返回:Array <Element >

没选择的元素的筛选器

Utilities

jQuery.format

(template,argument ,argumentN...)

返回:String

用参数代替模板中的 {n}

 

 

Validator:

validate方法返回一个Validator对象,它有很多方法,让你能使用引发校验程序或者改变form的内容. validator对象有很多方法,但下面只是列出常用的

form()

返回:Boolean

验证form返回成功还是失败

element(element)

返回:Boolean

验证单个元素是成功还是失败

resetForm()

返回:undefined

把前面验证的FORM恢复到验证前原来的状态

showErrors(errors)

返回:undefined

显示特定的错误信息

 

Validator functions:

setDefaults(defaults)

返回:undefined

改变默认的设置

addMethod(name,method,message)

返回:undefined

添加一个新的验证方法.必须包括一个独一无二的名字,一个JAVASCRIPT的方法和一个默认的信息

addClassRules(name,rules)

返回:undefined

增加组合验证类型 在一个类里面用多种验证方法里比较有用

addClassRules(rules)

返回:undefined

增加组合验证类型 在一个类里面用多种验证方法里比较有用,这个是一下子加多个

 

 

内置验证方式:

required()

返回:Boolean

必填验证元素

required(dependency-expression)

返回:Boolean

必填元素依赖于表达式的结果

required(dependency-callback)

返回:Boolean

必填元素依赖于回调函数的结果

remote(url)

返回:Boolean

请求远程校验。url通常是一个远程调用方法

minlength(length)

返回:Boolean

设置最小长度

maxlength(length)

返回:Boolean

设置最大长度

rangelength(range)

返回:Boolean

设置一个长度范围[min,max]

min(value)

返回:Boolean

设置最大值

max(value)

返回:Boolean

设置最小值

email()

返回:Boolean

验证电子邮箱格式

range(range)

返回:Boolean

设置值的范围

url()

返回:Boolean

验证URL格式

date()

返回:Boolean

验证日期格式(类似30/30/2008的格式,不验证日期准确性只验证格式)

dateISO()

返回:Boolean

验证ISO类型的日期格式

dateDE()

返回:Boolean

验证德式的日期格式(29.04.1994 or 1.1.2006

number()

返回:Boolean

验证十进制数字(包括小数的)

digits()

返回:Boolean

验证整数

creditcard()

返回:Boolean

验证信用卡号

accept(extension)

返回:Boolean

验证相同后缀名的字符串

equalTo(other)

返回:Boolean

验证两个输入框的内容是否相同

phoneUS()

返回:Boolean

验证美式的电话号码

 

 

validate ()的可选项:

debug:进行调试模式(表单不提交):

$(".selector").validate

({

  debug:true

})

把调试设置为默认:

$.validator.setDefaults({

  debug:true

})

submitHandler:

通过验证后运行的函数,里面要加上表单提交的函数,否则表单不会提交

$(".selector").validate({

  submitHandler:function(form) {

$(form).ajaxSubmit();

  }

})

ignore:

对某些元素不进行验证

$("#myform").validate({

  ignore:".ignore"

})

rules:

自定义规则,key:value的形式,key是要验证的元素,value可以是字符串或对象

$(".selector").validate({

  rules:{

    name:"required",

    email:{

      required:true,

      email:true

    }

  }

})

messages:

自定义的提示信息key:value的形式key是要验证的元素,值是字符串或函数

$(".selector").validate({

  rules:{

    name:"required",

    email:{

      required:true,

      email:true

    }

  },

  messages:{

    name:"Name不能为空",

    email:{

      required:"E-mail不能为空",

      email:"E-mail地址不正确"

    }

  }

})

groups:

对一组元素的验证,用一个错误提示,error Placement控制把出错信息放在哪里

$("#myform").validate({

 groups:{

   username:"fname lname"

 },

 errorPlacement:function(error,element) {

    if (element.attr("name") == "fname" || element.attr("name") == "lname")

      error.insertAfter("#lastname");

    else

      error.insertAfter(element);

  },

  debug:true

})

Onubmit Boolean默认:true

是否提交时验证

$(".selector").validate({

  onsubmit:false

})

onfocusout Boolean默认:true 

是否在获取焦点时验证

$(".selector").validate({

  onfocusout:false

})

onkeyup Boolean默认:true 

是否在敲击键盘时验证

$(".selector").validate({

  onkeyup:false

})

onclick Boolean默认:true

是否在鼠标点击时验证(一般验证checkbox,radiobox

$(".selector").validate({

  onclick:false

})

focusInvalid Boolean默认:true

提交表单后,未通过验证的表单(第一个或提交之前获得焦点的未通过验证的表单)会获得焦点

$(".selector").validate({

  focusInvalid:false

})

focusCleanup Boolean默认:false

当未通过验证的元素获得焦点时,并移除错误提示(避免和 focusInvalid.一起使用)

$(".selector").validate({

  focusCleanup:true

})

errorClass String默认:"error"

指定错误提示的css类名,可以自定义错误提示的样式

$(".selector").validate({

  errorClass:"invalid"

})

errorElement String默认:"label"

使用什么标签标记错误

$(".selector").validate

  errorElement:"em"

})

wrapper String

使用什么标签再把上边的errorELement包起来

$(".selector").validate({

  wrapper:"li"

})

errorLabelContainer Selector

把错误信息统一放在一个容器里面

$("#myform").validate({

  errorLabelContainer:"#messageBox",

  wrapper:"li",

  submitHandler:function() { alert("Submitted!") }

})

 

showErrors:

跟一个函数,可以显示总共有多少个未通过验证的元素

$(".selector").validate({

  showErrors:function(errorMap,errorList) {

       $("#summary").html("Your form contains " + this.numberOfInvalids() + " errors,see details below.");

       this.defaultShowErrors();

  }

})

errorPlacement:

跟一个函数,可以自定义错误放到哪里

$("#myform").validate({

 rrorPlacement:function(error,element) {  error.appendTo(element.parent("td").next("td"));

  },

  debug:true

 

})

success:

要验证的元素通过验证后的动作,如果跟一个字符串,会当做一个css,也可跟一个函数

$("#myform").validate({

       success:"valid",

       submitHandler:function() { alert("Submitted!") }

})

highlight:

可以给未通过验证的元素加效果,闪烁等

 


参考文章:

http://www.cnblogs.com/hejunrex/archive/2011/11/17/2252193.html