JQuery validate插件驗(yàn)證用戶注冊(cè)信息
使用JQuery的validate插件做客戶端驗(yàn)證非常方便,下面做一個(gè)使用validate插件驗(yàn)證用戶注冊(cè)信息的例子。
本實(shí)例使用的是1.5版本。
示例是在SSH下做的,代碼如下:
registe.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>注冊(cè)頁面</title>
<mce:script type="text/javascript" src="js/jquery.1.4.2.js" mce_src="js/jquery.1.4.2.js"></mce:script>
<mce:script type="text/javascript" src="js/validate/jquery.validate.js" mce_src="js/validate/jquery.validate.js"></mce:script>
<link href="js/validate/jquery.validate.css" mce_href="js/validate/jquery.validate.css" type="text/css" rel="stylesheet"/>
<mce:script type="text/javascript"><!--
//擴(kuò)展validator的校驗(yàn)方法
$.validator.addMethod("onlyLetterAndDigit",function(value, element, params){
var regex=new RegExp('^[0-9a-zA-Z]+$');
return regex.test(value);
},"只能輸入字母或數(shù)字");
$(function(){
$("#registe").validate({
//定義驗(yàn)證規(guī)則,其中屬性名為表單的name屬性
rules:{
username:{
required:true,
onlyLetterAndDigit:true,//使用自定義方法限制只能輸入字母或數(shù)字
rangelength:[4,20],
remote:"registe!validName.action"http://使用AJAX異步校驗(yàn)
},
password:{
required:true,
rangelength:[4,20]
},
chkpassword:{
required:true,
equalTo:"#password"
},
email:{
required:true,
email:true
},
vercode:"required"
},
messages:{
username:{
required:"請(qǐng)輸入用戶名",
rangelength:"用戶名長度必須在4~20位之間",
remote:$.format("用戶名{0}已存在,請(qǐng)重新輸入!")
},
password:{
required:"請(qǐng)輸入密碼",
rangelength:"密碼長度必須在4~20位之間"
},
chkpassword:{
required:"請(qǐng)?jiān)俅屋斎朊艽a",
equalTo:"密碼輸入不一致,請(qǐng)重新輸入"
},
email:{
required:"請(qǐng)輸入電子郵件",
email:"請(qǐng)輸入合法的電子郵件"
},
vercode:{
required:"請(qǐng)輸入驗(yàn)證碼"
}
}
});
});
//刷新驗(yàn)證碼
function refresh()
{
$("#authImg").src="authImg?now="+new Date();
}
// --></mce:script>
</head>
<body>
<form action="registe.action" method="post" id="registe">
<table>
<caption><h2>用戶注冊(cè)</h2></caption>
<tr>
<td>用 戶 名:</td><td><input type="text" name="username" id="username"/></td>
</tr>
<tr>
<td>密 碼:</td><td><input type="text" name="password" id="password"/> </td>
</tr>
<tr>
<td>確認(rèn)密碼:</td><td><input type="text" name="chkpassword"/></td>
</tr>
<tr>
<td>Email:</td><td><input type="text" name="email"/></td>
</tr>
<tr>
<td>驗(yàn)證碼:</td><td valign="bottom"><input type="text" name="vercode" size="10"/> <img alt="" src="authImg" mce_src="authImg" id="authImg" align="absmiddle"><a href="#" mce_href="#" onclick="refresh()"><span style="font-size:12px" mce_style="font-size:12px">刷新驗(yàn)證碼</span></a></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="提交"/><input type="reset" value="重填"/></td>
</tr>
</table>
</form>
</body>
</html>
后臺(tái)RegisteAction.java的主要方法
public String execute() throws Exception {
Map session = ActionContext.getContext().getSession();
String ver2 = (String) session.get("rand");
session.put("rand", null);
//判斷驗(yàn)證碼是否正確
if (vercode.equals(ver2)) {
if (userManager.validName(username)) {
if (userManager.addUser(username, password, email) > 0)
return SUCCESS;
else
addActionError("注冊(cè)失敗,請(qǐng)重試!");
} else {
addActionError("該用戶名已存在,請(qǐng)重新輸入!");
}
} else {
addActionError("驗(yàn)證碼不匹配,請(qǐng)重新輸入");
}
return INPUT;
}
//驗(yàn)證用戶名是否可用
public String validName() throws Exception {
System.out.println(username);
boolean flag = userManager.validName(username);
HttpServletResponse response = ServletActionContext.getResponse();
response.setDateHeader("Expires", 0);
response.addHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
response.setContentType("text/plain;charset=UTF-8");
if (flag)
response.getWriter().write("true");
else
response.getWriter().write("false");
response.getWriter().flush();
// 因?yàn)橹苯虞敵鰞?nèi)容而不經(jīng)過jsp,因此返回null.
return null;
}
效果圖如下:

注意:使用remote異步驗(yàn)證用戶名的方法應(yīng)該通過response.getWriter().write("true")來輸出,而不能像普通方法一樣返回字符串。
關(guān)于插件更詳細(xì)的介紹可以查看“jQuery validate驗(yàn)證插件使用詳解”。
另外,jQuery也支持動(dòng)態(tài)給控件添加校驗(yàn),例如:
但要注意:如果對(duì)集合中的元素動(dòng)態(tài)添加校驗(yàn)需要循環(huán)對(duì)每個(gè)元素添加,這是因?yàn)閖Query隱式實(shí)現(xiàn)了集合操作,但validate插件沒有。例如:
$(".quantity").each(function(){
$(this).rules("add",{digits:true,required:true});
});
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。
- jquery validate表單驗(yàn)證插件
- 基于Bootstrap+jQuery.validate實(shí)現(xiàn)表單驗(yàn)證
- jQuery驗(yàn)證插件validate使用方法詳解
- CKEditor無法驗(yàn)證的解決方案(js驗(yàn)證+jQuery Validate驗(yàn)證)
- jQuery validate+artdialog+jquery form實(shí)現(xiàn)彈出表單思路詳解
- jquery.validate提示錯(cuò)誤信息位置方法
- jQuery validate插件實(shí)現(xiàn)ajax驗(yàn)證重復(fù)的2種方法
- jQuery validate插件submitHandler提交導(dǎo)致死循環(huán)解決方法
- 深入學(xué)習(xí)jQuery Validate表單驗(yàn)證(二)
- jquery.validate[.unobtrusive]和Bootstrap實(shí)現(xiàn)tooltip錯(cuò)誤提示問題分析
相關(guān)文章
jQuery 下拉列表 二級(jí)聯(lián)動(dòng)插件分享
jQuery二級(jí)聯(lián)動(dòng)插件:jQuery.selected 一個(gè)頁面可以引用多個(gè)聯(lián)動(dòng)效果2012-03-03
JQuery EasyUI 加載兩次url的原因分析及解決方案
這篇文章主要介紹了JQuery EasyUI 加載兩次url的原因分析及解決方案,需要的朋友可以參考下2014-08-08
jquery實(shí)現(xiàn)表格奇數(shù)偶數(shù)行不同樣式(有圖為證及實(shí)現(xiàn)代碼)
表格奇數(shù)偶數(shù)行不同樣式,相信很多網(wǎng)友都想試試手吧,由于經(jīng)驗(yàn)上千所以只能半途而廢,為了響應(yīng)網(wǎng)友的心聲,本文整理了一些操作技巧,有圖為證,感興趣的朋友可以了解下哦2013-01-01
jQuery實(shí)現(xiàn)的tab標(biāo)簽切換效果示例
這篇文章主要介紹了jQuery實(shí)現(xiàn)的tab標(biāo)簽切換效果,結(jié)合實(shí)例形式分析了jQuery響應(yīng)鼠標(biāo)事件動(dòng)態(tài)變換頁面元素屬性的相關(guān)操作技巧,需要的朋友可以參考下2016-09-09
jQuery dateRangePicker插件使用方法詳解
這篇文章主要為大家詳細(xì)介紹了jQuery dateRangePicker插件的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
Axios和Jquery實(shí)現(xiàn)文件上傳功能
這篇文章主要為大家詳細(xì)介紹了Axios+Jquery實(shí)現(xiàn)文件上傳功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08
可以浮動(dòng)某個(gè)物體的jquery控件用法實(shí)例
這篇文章主要介紹了可以浮動(dòng)某個(gè)物體的jquery控件,實(shí)例分析了jquery控件實(shí)現(xiàn)頁面浮動(dòng)層的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
jQuery實(shí)現(xiàn)炫酷的鼠標(biāo)軌跡特效
本文給大家分享的是一段jQuery實(shí)現(xiàn)炫酷的鼠標(biāo)軌跡的特效代碼,希望小伙伴們能夠喜歡。2015-02-02

