概述
在表单验证中,jQuery的一款叫validate的插件十分好用,简单的API封装了大部分常用操作。
实战Demo
对于一个用户登录的简单Demo,我们引入jqeury库和valiedate插件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Validate插件</title>
</head>
<body>
<form id="demoForm">
    <fieldset>
        <legend>用户登录</legend>
        <p id="info"></p>
        <p>
            <label for="username">用户名</label>
            <input type="text" id="username" name="username"/>
        </p>
        <p>
            <label for="password">密码</label>
            <input type="password" id="password" name="password"/>
        </p>
        <p>
            <label for="confirm-password">确认密码</label>
            <input type="password" id="confirm-password" name="confirm-password"/>
        </p>
        <p>
            <input type="submit" value="登录"/>
        </p>
    </fieldset>
</form>
<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.0.0.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.15.0/jquery.validate.min.js"></script>
<script type="text/javascript">
	
</script>
</body>
</html>
Jquery部分:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
$(document).ready(function(){
				var validator1;
				validator1=$("#demoForm").validate({
					debug: true,
					rules: {
						username: {
		                    required: true,
		                    minlength: 2,
		                    maxlength: 10
		                },
		                password: {
		                    required: true,
		                    minlength: 2,
		                    maxlength: 16
		                },
		                 "confirm-password": {
		                    equalTo: "#password"
		                }
					},
					messages: {
		                username: {
		                    required: '请输入用户名',
		                    minlength: '用户名不能小于2个字符',
		                    maxlength: '用户名不能超过10个字符',
		                    remote: '用户名不存在'
		                },
		                password: {
		                    required: '请输入密码',
		                    minlength: '密码不能小于2个字符',
		                    maxlength: '密码不能超过16个字符'
		                }
		            }
				});
			});
异步验证
valiedate还有许多好用的属性,如果需要异步验证,可以使用valiedate封装的remote,同样也是基于ajax,如:
username: {
    required: true,
    remote: "remote.json"
}
这样对于username这个表单元素,就会进行异步验证,当然远程的url你可以填写jsp,php等
还有其他的验证属性如:
| 验证属性 | 接受值 | 作用 | 
|---|---|---|
| true | 验证是否为邮箱格式 | |
| url | true | 验证是否为url格式 | 
| date | true | 验证是否为date格式 | 
| dateISO | true | 验证是否为dateISO格式 | 
批量验证
对于表单中有着大量元素,但元素验证的属性重复的情况,valiedate有一个专门用于批量验证的静态方法
$.validator.addClassRules({
    txt: {
        required: true,
        minlength: 5
    }
})
那么这个方法将会对class为txt的表单元素进行验证。也就是说到时我们的表单编写只需增加class属性以后即可,而不用每个表单都添加验证。