使用JQuery的validate插件做客户端验证非常方便,下面做一个使用validate插件验证用户注册信息的例子。
本实例使用的是1.5版本。
示例是在SSH下做的,代码如下:
registe.jsp
注册页面用户注册
用 户 名:
密 码:
确认密码:
Email:
后台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也支持动态给控件添加校验,例如:
("#email").rules("add", { required: true, email: true });
但要注意:如果对集合中的元素动态添加校验需要循环对每个元素添加,这是因为jQuery隐式实现了集合操作,但validate插件没有。例如:
$(".quantity").each(function(){
$(this).rules("add",{digits:true,required:true});
});
以上就是本文的全部内容,希望对大家的学习有所帮助。