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


Posted in Javascript onMay 11, 2016

使用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; 
}

效果图如下:

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

注意:使用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}); 
});

以上就是本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
40款非常棒的jQuery 插件和制作教程(系列一)
Oct 26 Javascript
关于JAVASCRIPT urldecode URL解码的问题
Jan 08 Javascript
JQuery中form验证出错信息的查看方法
Oct 08 Javascript
jquery比较简洁的软键盘特效实现方法
Mar 19 Javascript
jQuery中常用动画效果函数(日常整理)
Sep 17 Javascript
深入研究React中setState源码
Nov 17 Javascript
vue实现树形菜单效果
Mar 19 Javascript
vue中倒计时组件的实例代码
Jul 06 Javascript
vue实现点击选中,其他的不选中方法
Sep 05 Javascript
webpack dll打包重复问题优化的解决
Oct 10 Javascript
Vue render函数实战之实现tabs选项卡组件
Apr 22 Javascript
在Chrome DevTools中调试JavaScript的实现
Apr 07 Javascript
jQuery validate验证插件使用详解
May 11 #Javascript
Jquery插件仿百度搜索关键字自动匹配功能
May 11 #Javascript
基于jQuery插件实现点击小图显示大图效果
May 11 #Javascript
React.js入门实例教程之创建hello world 的5种方式
May 11 #Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
May 11 #Javascript
原生javascript实现分享到朋友圈功能 支持ios和android
May 11 #Javascript
使用JavaScript实现ajax的实例代码
May 11 #Javascript
You might like
php+mysql+jquery实现日历签到功能
2017/02/27 PHP
thinkPHP3.2.3结合Laypage实现的分页功能示例
2018/05/28 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
php7新特性的理解和比较总结
2019/04/14 PHP
JS实现打开本地文件或文件夹
2021/03/09 Javascript
一个报数游戏js版(约瑟夫环问题)
2010/08/05 Javascript
Jquery显示、隐藏元素以及添加删除样式
2013/08/09 Javascript
vue中实现Monaco Editor自定义提示功能
2019/07/05 Javascript
nodejs和react实现即时通讯简易聊天室功能
2019/08/21 NodeJs
jquery.validate自定义验证用法实例分析【成功提示与择要提示】
2020/06/06 jQuery
Python生成随机数的方法
2014/01/14 Python
python抓取网页中链接的静态图片
2018/01/29 Python
python2.7实现FTP文件下载功能
2018/04/15 Python
Python脚本完成post接口测试的实例
2018/12/17 Python
分享PyCharm的几个使用技巧
2019/11/10 Python
关于numpy中eye和identity的区别详解
2019/11/29 Python
Pytorch中Tensor与各种图像格式的相互转化详解
2019/12/26 Python
将labelme格式数据转化为标准的coco数据集格式方式
2020/02/17 Python
Python使用ElementTree美化XML格式的操作
2020/03/06 Python
python递归调用中的坑:打印有值, 返回却None
2020/03/16 Python
python将音频进行变速的操作方法
2020/04/08 Python
PyQt5实现画布小程序
2020/05/30 Python
Python 串口通信的实现
2020/09/29 Python
pandas实现导出数据的四种方式
2020/12/13 Python
CSS3中Color的一些特性介绍
2012/05/27 HTML / CSS
基于css3的属性transition制作菜单导航效果
2015/09/01 HTML / CSS
教师实习的自我鉴定
2013/10/26 职场文书
成功的餐厅经营创业计划书
2014/01/15 职场文书
单位实习证明怎么写
2014/01/17 职场文书
个人自我评价范文
2014/02/05 职场文书
学习十八大报告感言
2014/02/28 职场文书
2014中考励志标语
2014/06/05 职场文书
信用卡工资证明格式
2014/09/13 职场文书
励志广播稿300字(5篇)
2014/09/15 职场文书
2014年组织部工作总结
2014/11/14 职场文书
PHP 时间处理类Carbon
2022/05/20 PHP