jQuery03
- 作者: 我是一名黄逗比
- 来源: 51数据库
- 2021-08-23
使用jQuery实现表单校验:(单独拿出来介绍表单校验,是因为内容比较多,知识点较多);
1、注:这里使用validation插件完成对表单数据的校验;
validate:一款优秀的表单验证插件——validation插件
(1)特点:
内置验证规则:拥有必填、数字、email、url和信用卡号码等19类内置验证规则;
自定义验证规则:可以很方便的自定义验证规则;
简单强大的验证信息提示:默认了验证信息提示,并提供自定义覆盖默认提示信息的功能;
实时验证:可以通过keyup或bulr事件触发验证,而不仅仅在表单提交的时候验证。
(2)既然是一个插件,使用之前就需要先导入文件validate库,当然同时也需要导入jQuery库,另外,也可导入支持中文的国际化资源库,如下:

注:前两个库的导入顺序不能改变(先导jQuery,再导validate),jQuery版本可更改为1.8.3版本的
2、介绍一下validate校验规则,看下图:

根据此规则,我们先来写一段简单的入门校验代码:

1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title>validate入门案例</title>
6 <script type="text/javascript" src="../../js/jquery-1.8.3.js" ></script>
7 <!--validate.js是建立在jquery之上的,所以得先导入jquery的类库-->
8 <script type="text/javascript" src="../../js/jquery.validate.min.js" ></script>
9 <!--引入国际化js文件-->
10 <script type="text/javascript" src="../../js/messages_zh.js" ></script>
11 <script>
12 $(function(){
13 $("#checkForm").validate({
14 rules:{
15 username:{
16 required:true,
17 minlength:6
18 },
19 password:{
20 required:true,
21 digits:true,
22 minlength:6
23 }
24 },
25 messages:{
26 username:{
27 required:"用户名不能为空!",
28 minlength:"用户名不得少于6位!"
29 },
30 password:{
31 required:"密码不能为空!",
32 digits:"密码必须是整数!",
33 minlength:"密码不得少于6位!"
34 }
35 }
36 });
37 });
38 </script>
39
40 </head>
41 <body>
42 <form action="#" id="checkForm">
43 用户名:<input type="text" name="username" /><br />
44 密码:<input type="password" name="password"/><br />
45 <input type="submit"/>
46 </form>
47 </body>
48 </html>
注:点开代码,里边的messages{}是用来自定义提示语的,当然你如果不写messages{},他会提示validate自带的提示语;
接下来是用validate进行表单校验的代码(jQuery代码部分):
<script type="text/javascript" src="../../js/jquery-1.11.0.min.js" ></script>
<script type="text/javascript" src="../../js/jquery.validate.min.js" ></script>
<script type="text/javascript" src="../../js/messages_zh.js" ></script>
<script>
$(function(){
$("#registForm").validate({
rules:{
user:{
required:true,
minlength:2
},
password:{
required:true,
digits:true,
minlength:6
},
repassword:{
required:true,
digits:true,
minlength:6,
equalTo:"[name='password']"
},
email:{
required:true,
email:true
},
username:{
required:true,
minlength:2
},
sex:{
required:true
}
},
messages:{
user:{
required:"用户名不能为空!",
minlength:"用户名不得少于2个字符!"
},
password:{
required:"密码不能为空!",
digits:"密码必须是数字!",
minlength:"密码长度不得低于6位!"
},
repassword:{
required:"确认密码不能为空!",
digits:"密码必须是数字!",
minlength:"密码长度不得低于6位!",
equalTo:"两次密码不一致!"
},
email:{
required:"邮箱不能为空!",
email:"邮箱格式不正确!"
},
username:{
required:"姓名不能为空!",
minlength:"姓名不得少于2个字符!"
},
sex:{
required:"性别必须勾选!"
}
},
errorElement: "label", //用来创建错误提示信息标签
success: function(label) { //验证成功后的执行的回调函数
//label指向上面那个错误提示信息标签label
label.text(" ") //清空错误提示消息
.addClass("success"); //加上自定义的success类
}
});
})
</script>
完整代码:

1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title>网站注册页面</title>
6 <style>
7 #contanier{
8 border: 0px solid white;
9 width: 1300px;
10 margin: auto;
11 }
12
13 #top{
14 border: 0px solid white;
15 width: 100%;
16 height: 50px;
17 }
18 #menu{
19 border: 0px solid white;
20 height: 40px;
21 background-color: black;
22 padding-top: 10px;
23 margin-bottom: 15px;
24 margin-top: 10px;
25 }
26 .top{
27 border: 0px solid white;
28 width: 405px;
29 height: 100%;
30 float: left;
31 padding-left: 25px;
32 }
33 #top1{
34 padding-top: 15px;
35 }
36 #bottom{
37 margin-top: 13px;
38 text-align: center;
39 }
40
41 #form{
42 height: 500px;
43 padding-top: 70px;
44 background-image: url(../img/regist_bg.jpg);
45 margin-bottom: 10px;
46 }
47 a{
48 text-decoration: none;
49 }
50
51 label.error{
52 background:url(../img/unchecked.gif) no-repeat 10px 3px;
53 padding-left: 30px;
54 font-family:georgia;
55 font-size: 15px;
56 font-style: normal;
57 color: red;
58 }
59
60 label.success{
61 background:url(../img/checked.gif) no-repeat 10px 3px;
62 padding-left: 30px;
63 }
64
65 #father{
66 border: 0px solid white;
67 padding-left: 307px;
68 }
69
70 #form2{
71 border: 5px solid gray;
72 width: 660px;
73 height: 450px;
74 }
75
76 </style>
77 <script type="text/javascript" src="../js/jquery-1.8.3.js" ></script>
78 <!--引入validate插件js文件-->
79 <script type="text/javascript" src="../js/jquery.validate.min.js" ></script>
80 <!--引入国际化js文件-->
81 <script type="text/javascript" src="../js/messages_zh.js" ></script>
82 <script>
83 $(function(){
84 $("#registForm").validate({
85 rules:{
86 user:{
87 required:true,
88 minlength:3
89 },
90 password:{
91 required:true,
92 digits:true,
93 minlength:6
94 },
95 repassword:{
96 required:true,
97 equalTo:"[name='password']"
98 },
99 email:{
100 required:true,
101 email:true
102 },
103 username:{
104 required:true,
105 maxlength:5
106 },
107 sex:{
108 required:true
109 }
110 },
111 messages:{
112 user:{
113 required:"用户名不能为空!",
114 minlength:"用户名不得少于3位!"
115 },
116 password:{
117 required:"密码不能为空!",
118 digits:"密码必须是整数!",
119 minlength:"密码不得少于6位!"
120 },
121 repassword:{
122 required:"确认密码不能为空!",
123 equalTo:"两次输入密码不一致!"
124 },
125 email:{
126 required:"邮箱不能为空!",
127 email:"邮箱格式不正确!"
128 },
129 username:{
130 required:"姓名不能为空!",
131 maxlength:"姓名不得多于5位!"
132 },
133 sex:{
134 required:"性别必须勾选!"
135 }
136 },
137 errorElement: "label", //用来创建错误提示信息标签,validate插件默认的就是label
138 success: function(label) { //验证成功后的执行的回调函数
139 //label指向上面那个错误提示信息标签label
140 label.text(" ") //清空错误提示消息
141 .addClass("success"); //加上自定义的success类
142 }
143 });
144 });
145 </script>
146 </head>
147 <body>
148 <div id="contanier">
149 <div id="top">
150 <div class="top">
151 <img src="../img/logo2.png" height="47px"/>
152 </div>
153 <div class="top">
154 <img src="../img/header.png" height="45px" />
155 </div>
156 <div class="top" id="top1">
157 <a >登录</a>
158 <a >注册</a>
159 <a >购物车</a>
160 </div>
161 </div>
162 <div id="menu">
163 <a ><font size="5" color="white">首页</font></a>
164 <a ><font color="white">电脑办公</font></a>
165 <a ><font color="white">手机数码</font></a>
166 <a ><font color="white">鞋靴箱包</font></a>
167 </div>
168 <div id="form">
169 <form action="#" method="get" id="registForm">
170 <div id="father">
171 <div id="form2">
172 <table border="0px" width="100%" height="100%" align="center" cellpadding="0px" cellspacing="0px" bgcolor="white">
173 <tr>
174 <td colspan="2" >
175
176 <font size="5">会员注册</font> USER REGISTER
177 </td>
178 </tr>
179 <tr>
180 <td width="180px">
181
182
183
184 <label for="user" >用户名</label>
185 </td>
186 <td>
187 <em style="color: red;">*</em> <input type="text" name="user" size="35px" id="user"/>
188 </td>
189 </tr>
190 <tr>
191 <td>
192
193
194
195 密码
196 </td>
197 <td>
198 <em style="color: red;">*</em> <input type="password" name="password" size="35px" id="password" />
199 </td>
200 </tr>
201 <tr>
202 <td>
203
204
205
206 确认密码
207 </td>
208 <td>
209 <em style="color: red;">*</em> <input type="password" name="repassword" size="35px"/>
210 </td>
211 </tr>
212 <tr>
213 <td>
214
215
216
217 Email
218 </td>
219 <td>
220 <em style="color: red;">*</em> <input type="text" name="email" size="35px" id="email"/>
221 </td>
222 </tr>
223 <tr>
224 <td>
225
226
227
228 姓名
229 </td>
230 <td>
231 <em style="color: red;">*</em> <input type="text" name="username" size="35px"/>
232 </td>
233 </tr>
234 <tr>
235 <td>
236
237
238
239 性别
240 </td>
241 <td>
242 <span style="margin-right: 155px;">
243 <em style="color: red;">*</em> <input type="radio" name="sex" value="男"/>男
244 <input type="radio" name="sex" value="女"/>女<em></em>
245 <label for="sex" class="error" style="display: none;"></label>
246 </span>
247
248 </td>
249 </tr>
250 <tr>
251 <td>
252
253
254
255 出生日期
256 </td>
257 <td>
258 <em style="color: red;">*</em> <input type="text" name="birthday" size="35px"/>
259 </td>
260 </tr>
261 <tr>
262 <td>
263
264
265
266 验证码
267 </td>
268 <td>
269 <em style="color: red;">*</em> <input type="text" name="yanzhengma" />
270 <img src="../img/yanzhengma.png" style="height: 18px;width: 85px;"/>
271 </td>
272 </tr>
273 <tr>
274 <td colspan="2">
275
276
277
278
279
280
281 <input type="submit" value="注 册" height="50px"/>
282 </td>
283 </tr>
284 </table>
285 </div>
286 </div>
287 </form>
288 </div>
289 <div>
290 <img src="../img/footer.jpg" width="100%"/>
291 </div>
292 <div id="bottom">
293 <a >关于我们</a>
294 <a >联系我们</a>
295 <a >招贤纳士</a>
296 <a >法律声明</a>
297 <a >友情链接</a>
298 <a >支付方式</a>
299 <a >配送方式</a>
300 <a >服务声明</a>
301 <a >广告声明</a>
302 <p>
303 Copyright ? 2005-2016 传智商城 版权所有
304 </p>
305 </div>
306 </div>
307 </body>
308 </html>
案例代码总结:此代码中要注意label标签的用法(见代码中),还有验证成功后执行的回调函数的用法(一般是固定的,使用时直接复制粘贴);
推荐阅读
