S2SH+jQuery+JSON+Ajax注册--异步校验

在网上找过关于此问题的代码,不过都不尽人意。想想还是自己写吧。

先看效果:


S2SH+jQuery+JSON+Ajax注册--异步校验

文本框获得焦点时旁边会有一个跳动的蓝色小球,主要也是为了好看点。么啥大用。


 建立数据库:

 

 

 

create database ssh default character set utf8;

use ssh;

create table register(
	id int not null primary key auto_increment,
	email varchar(200)
);

insert into register values(1,'[email protected]');
insert into register values(2,'[email protected]');

 

接下来是啥Register类,dao,daoImpl,service,serviceImpl之类的,就不写了。主要的方法就是

 

public boolean emailExists(String email) {
		String hql="from Register as r where r.email='"+email+"'";
		List<Register> list=this.getHibernateTemplate().find(hql);
		if(list!=null&&list.size()>0){
			//此邮件已经存在
			return true;       }
		return false;      //此邮件不存在

 

接着一些配置,也省了,最后是action,在这里用了struts-json的插件。

 

 

 

        private RegisterService registerService;                                                                                                                                               
	private String responseText;   //返回的结果
	private boolean flag;          //主要是为了效果好看点

        //getter/setter...


      public String emailExists() {
		if (registerService.emailExists(this.register.getEmail())) {
			flag = false;
			responseText = "该用户名已经存在";
			return "success";
		} else {
			flag = true;
			responseText = "可以注册";
			return "success";
		}
	} 
}
 

 

 

  JS代码:

 

$(function(){
	
	$("#email").focus(function(){
		$('#email-hint').html("<span class='formtips onWaiting'></span>");
	});
	
	 $("#email").blur(function(){
        $.getJSON("reg.action", 
		"register.email=" + $("#email").val(), 
		function(data){
			if (data.flag) {
				$('#email-hint').html("<span class='formtips onSuccess'>" + data.responseText+  "</span>");
			}else{
				$('#email-hint').html("<span class='formtips onError'>" + data.responseText + "</span>");
			}	
        });
    })
    
})
 

 

到此就OK了。

 

你可能感兴趣的:(jquery,Ajax,json,struts,ssh)