JQuery validate插件验证用户注册信息

使用JQuery的validate插件做客户端验证非常方便,下面做一个使用validate插件验证用户注册信息的例子。

本实例使用的是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>注册页面</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"><!--

//扩展validator的校验方法

$.validator.addMethod("onlyLetterAndDigit",function(value, element, params){

var regex=new RegExp('^[0-9a-zA-Z]+$');

return regex.test(value);

},"只能输入字母或数字");

$(function(){

$("#registe").validate({

//定义验证规则,其中属性名为表单的name属性

rules:{

username:{

required:true,

onlyLetterAndDigit:true,//使用自定义方法限制只能输入字母或数字

rangelength:[4,20],

remote:"registe!validName.action"//使用AJAX异步校验

},

password:{

required:true,

rangelength:[4,20]

},

chkpassword:{

required:true,

equalTo:"#password"

},

email:{

required:true,

email:true

},

vercode:"required"

},

messages:{

username:{

required:"请输入用户名",

rangelength:"用户名长度必须在4~20位之间",

remote:$.format("用户名{0}已存在,请重新输入!")

},

password:{

required:"请输入密码",

rangelength:"密码长度必须在4~20位之间"

},

chkpassword:{

required:"请再次输入密码",

equalTo:"密码输入不一致,请重新输入"

},

email:{

required:"请输入电子邮件",

email:"请输入合法的电子邮件"

},

vercode:{

required:"请输入验证码"

}

}

});

});

//刷新验证码

function refresh()

{

$("#authImg").src="authImg?now="+new Date();

}

// --></mce:script>

</head>

<body>

<form action="registe.action" method="post" id="registe">

<table>

<caption><h2>用户注册</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>确认密码:</td><td><input type="text" name="chkpassword"/></td>

</tr>

<tr>

<td>Email:</td><td><input type="text" name="email"/></td>

</tr>

<tr>

<td>验证码:</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">刷新验证码</span></a></td>

</tr>

<tr>

<td colspan="2"><input type="submit" value="提交"/><input type="reset" value="重填"/></td>

</tr>

</table>

</form>

</body>

</html>

后台RegisteAction.java的主要方法

public String execute() throws Exception {

Map session = ActionContext.getContext().getSession();

String ver2 = (String) session.get("rand");

session.put("rand", null);

//判断验证码是否正确

if (vercode.equals(ver2)) {

if (userManager.validName(username)) {

if (userManager.addUser(username, password, email) > 0)

return SUCCESS;

else

addActionError("注册失败,请重试!");

} else {

addActionError("该用户名已存在,请重新输入!");

}

} else {

addActionError("验证码不匹配,请重新输入");

}

return INPUT;

}

//验证用户名是否可用

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();

// 因为直接输出内容而不经过jsp,因此返回null.

return null;

}

效果图如下:

注意:使用remote异步验证用户名的方法应该通过response.getWriter().write("true")来输出,而不能像普通方法一样返回字符串。

关于插件更详细的介绍可以查看“jQuery validate验证插件使用详解”。

另外,jQuery也支持动态给控件添加校验,例如:

("#email").rules("add", { required: true, email: true });  

但要注意:如果对集合中的元素动态添加校验需要循环对每个元素添加,这是因为jQuery隐式实现了集合操作,但validate插件没有。例如:

$(".quantity").each(function(){

$(this).rules("add",{digits:true,required:true});

});

以上是 JQuery validate插件验证用户注册信息 的全部内容, 来源链接: utcz.com/z/314751.html

回到顶部