JQuery validate插件验证用户注册信息
更新时间:2016年05月11日 15:09:32 作者:cuisea
这篇文章主要为大家详细介绍了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表单验证插件
- 基于Bootstrap+jQuery.validate实现表单验证
- jQuery验证插件validate使用方法详解
- CKEditor无法验证的解决方案(js验证+jQuery Validate验证)
- jQuery validate+artdialog+jquery form实现弹出表单思路详解
- jquery.validate提示错误信息位置方法
- jQuery validate插件实现ajax验证重复的2种方法
- jQuery validate插件submitHandler提交导致死循环解决方法
- 深入学习jQuery Validate表单验证(二)
- jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示问题分析
最新评论