当前位置: 代码迷 >> Web前端 >> jQuery&validate应验:同名用户和字符限制
  详细解决方案

jQuery&validate应验:同名用户和字符限制

热度:151   发布时间:2012-11-23 00:03:43.0
jQuery&validate验证:同名用户和字符限制。

工作中用到的,记录下来。新手一个,各位若有兴趣,可以留言讨论。

?

?

第一个:输入欲注册的用户名,即时验证该用户名是否存在。

?

一、JSP:

?

<form method="post" action="..." id="entpreg_stepfive">
	<label for="usercode">登录账户:</label>
	<input type="text" name="etp.userCode" id="usercode"/><span id="usercode_valid"></span>
</from>

?

二、JS:

$("#entpreg_stepfive").validate({
	rules:{
		'etp.userCode':{
			remote: {
				type: "post",
				url: "/powerSD/sdplat/etp/userCodeExist.action",
				data: {
					userCode: function() {
                            			return $("#etp.userCode").val();
					}
				},
				dataType: "html",
				dataFilter: function(data, type) {
					if (data == "true"){
						return true;
					}else{
						return false;
					}
				}
			}
		}
	},
	messages:{
		'etp.userCode':{
			remote: "用户名已被占用"
		}
	}
});
?

三、JAVA:

1)EtpManageAction.java

public void userCodeExist(){
	String sign = "false";
	String userCode = $("etp.userCode");
	if(this.getEtpManageService().userCodeExist(userCode)){ //即“2)”
		sign = "true";
	}
	super.renderText(sign); //开发框架的功能,可用“response.getWriter().print(sign)”代替
}
?

2)EtpManageServiceImpl.java

public boolean userCodeExist(String userCode){
	boolean sign = false;
	Map params = new HashMap();
	params.put("userCode", userCode);
	String userCodeS = this.ibatisDao.getString("etp-manage.findUserCodeForMap", params); //ibatis
	if(userCodeS == null){
		sign = true;
	}
	return sign;
}
?

3)sql-cust-manage.xml

<select id="findUserCodeForMap" parameterClass="hashMap" resultClass="String">
	select t.usercode
	from t_scm_cust_register t
	where t.userCode = #userCode#
</select>

?

----------------------------------------

第二个:限定用户名只可以是字母、数字和下划线

一、JSP:

<form method="post" action="..." id="entpreg_stepfive">
	<label for="usercode">登录账户:</label>
	<input type="text" name="etp.userCode" id="usercode"/><span id="usercode_valid"></span>
</from>
?

二、JS:

$(function(){
	jQuery.validator.addMethod("regex",
		function(value, element, params) {
			var exp = new RegExp(params);
			return exp.test(value);
		}, "格式错误");	
	$("#entpreg_stepfive").validate({
		rules:{
			'etp.userCode':{
				regex: "^\\w+$"
			}
		},
		messages:{
			'etp.userCode':{
				regex: "数字、字母或下划线"
			}
		}
	});
});

?

OVER!

  相关解决方案