js用户名邮箱唯一性的验证

我们在做用户注册的时候,会验证该用户名或者邮箱是否已经被注册,然后给注册该用户进行提示来修改。下面谈谈我的实现方法,感觉可以用希望可以帮组到你,不好的地方希望给予指正:

我是用java+js来实现的,首先看下我的数据库,其中userInfo表中有字段userName,email,password,

我用的是ssh框架来做的,hibernate来管理和数据库的交互,struts来管理定位

首先看下效果:如下图所示

 

public String checkName() {
		try {
			listCheckName = this.userInfoService.checkname(userInfo
					.getUserName());
			if (listCheckName.size() == 1) {
				System.out.println("该用户名已经被占用" + listCheckName.size());
				this.setResult("1");
				return SUCCESS;
			} else {
				this.setResult("0");
				return SUCCESS;
			}
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			return INPUT;
		}
	}

	public String checkEmail() throws Exception {
		try {
			listCheckEmail = this.userInfoService.checkemail(userInfo
					.getEmail());
			if (listCheckEmail.isEmpty()) {
				this.setResult("0");
				return SUCCESS;
			} else {
				System.out.println("该邮箱已经被占用");
				this.setResult("1");
				return SUCCESS;
			}
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			return INPUT;
		}
	}

我们用iterator.size()来统计出我们通过sql语句来查询出来的长度,sql语句如下所示:select * from userInfo where userInfo.userName='"+userName+";

若是iterator的结果是一条数据证明该用户已经存在,若是iterator的结果没有结果,证明该用户不存在数据库中,没有被占用,也就是说那个邮箱是可以注册的。

$("#email")
						.formValidator( {
							onShow : "请输入邮箱",
							onFocus : "邮箱6-100个字符",
							onCorrect : "恭喜你,你输对了",
							defaultValue : "@"
						})
						.inputValidator( {
							min : 6,
							max : 100,
							onError : "你输入的邮箱长度非法,请确认"
						})
						.regexValidator(
								{
									regExp : "^([\\w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([\\w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$",
									onError : "你输入的邮箱格式不正确"
								}).ajaxValidator( {
							dataType : "html",
							async : true,
							type : "get",
							url : "user/checkemail.action",
							success : function(data) {
								data = parseInt(data, 10);
								if (data == 0) {
									return true;
								} else {
									return "该email已存在,请更换您的邮箱";
								}
								alert(data.length);
							},
							buttons : $("#button"),
							error : function(jqXHR, textStatus, errorThrown) {
								alert("服务器没有返回数据,可能服务器忙,请重试" + errorThrown);
							},
							onError : "该email不可用,请更换用户名",
							onWait : "正在进行合法性校验,请稍候..."

						});

我们调用action,来当鼠标离开焦点的时候来验证该邮箱是否可以用,当通过action向后台传回的值是0的时候证明是可以用的,为1的时候是不可用的,我们可以看到,里面的checkemail.action,而后台的是传值是result,这就要我们在jsp页面设置一个能够向后台传result的页面了。提示给后台要执行的sql语句所对应的结果。

 

 


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值