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 相关文章推荐
原生JavaScript实现瀑布流布局
Jun 28 Javascript
功能强大的Bootstrap组件(结合js)
Aug 03 Javascript
jQuery可见性过滤选择器用法示例
Sep 09 Javascript
js实现带缓动动画的导航栏效果
Jan 16 Javascript
javascript获取以及设置光标位置
Feb 16 Javascript
创建简单的node服务器实例(分享)
Jun 23 Javascript
详解vue-cli 脚手架项目-package.json
Jul 04 Javascript
jQuery选择器中的特殊符号处理方法
Sep 08 jQuery
bootstrap表格内容过长时用省略号表示的解决方法
Nov 21 Javascript
推荐10款扩展Web表单的JS插件
Dec 25 Javascript
vue 项目地址去掉 #的方法
Oct 20 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
May 08 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 数据库字段复用的基本原理与示例
2011/07/22 PHP
关于URL最大长度限制的相关资料查证
2014/12/23 PHP
PHP实现Javascript中的escape及unescape函数代码分享
2015/02/10 PHP
WordPress主题制作中自定义头部的相关PHP函数解析
2016/01/08 PHP
PHP创建XML接口示例
2019/07/04 PHP
Laravel框架中集成MongoDB和使用详解
2019/10/17 PHP
PHP过滤器 filter_has_var() 函数用法实例分析
2020/04/23 PHP
PHP中-&gt;和=&gt;的含义及使用示例解析
2020/08/06 PHP
用javascript实现的图片马赛克后显示并切换加文字功能
2007/04/21 Javascript
自写的一个jQuery圆角插件
2010/10/26 Javascript
jQuery实现Twitter的自动文字补齐特效
2014/11/28 Javascript
Jquery日期选择datepicker插件用法实例分析
2015/06/08 Javascript
Vue的百度地图插件尝试使用
2017/09/06 Javascript
Vue 页面切换效果之 BubbleTransition(推荐)
2018/04/08 Javascript
vue-cli项目使用mock数据的方法(借助express)
2019/04/15 Javascript
详尽讲述用Python的Django框架测试驱动开发的教程
2015/04/22 Python
python 按照固定长度分割字符串的方法小结
2018/04/30 Python
判断python字典中key是否存在的两种方法
2018/08/10 Python
python中的句柄操作的方法示例
2019/06/20 Python
python障碍式期权定价公式
2019/07/19 Python
10 套华丽的CSS3 按钮小结
2012/10/03 HTML / CSS
Speedo速比涛中国官方网站:全球领先泳装运动品牌
2018/04/24 全球购物
意大利单身交友网站:Meetic
2020/07/12 全球购物
企业门卫岗位职责
2013/12/12 职场文书
中学生自我鉴定
2014/02/04 职场文书
上班看电影检讨书
2014/02/12 职场文书
庆元旦迎新年广播稿
2014/02/18 职场文书
铁路安全事故反思
2014/04/26 职场文书
2015年幼儿园新年寄语
2014/12/08 职场文书
初中信息技术教学计划
2015/01/22 职场文书
护林员个人总结
2015/03/04 职场文书
《领导干部从政道德启示录》学习心得体会
2016/01/20 职场文书
全家福照片寄语怎么写?
2019/04/02 职场文书
python process模块的使用简介
2021/05/14 Python
详解Mysql数据库平滑扩容解决高并发和大数据量问题
2022/05/25 MySQL
如何让你的Nginx支持分布式追踪详解
2022/07/07 Servers