在用户注册时经常要通过ajax请求判断用户账号是否已注册,最方便的方法便是用jQuery Validate插件 reomte方法
Jquery Validate插件, 调用远程方法验证参数, remote的用法:
在validate的方法上加入 remote:"校验方法" ,例如: remote: "/test/checkAccount.jsp" , 这时传进checkAccount.jsp的参数就是account=$("#account").val(), 这个是jquery.validate自动加参,不用手动修改,若参数名称不是变量名,可以自行修改成:remote: "/test/checkAccount.jsp?paramName=" + $("#account").val() 这时校验方法需返回boolean值,例如:account可用就out.print(false)或account不可用就out.print(true);
这里贴出善达网的注册代码:
$("#register").validate({rules: {
"user.email": {
required: true,
email: true,
remote:{
type:"POST",
url:"/passport/account/validateEmail",
data:{
email:function(){return $("#email").val();}
}
}
}
//此处省略善达网 sdg.registre.js的部分代码
},messages: {
"user.email": {
required: "请输入邮箱!",
email: "邮箱格式错误!",
remote: "该邮箱已被注册!"
}
//此处省略善达网 sdg.registre.js的部分代码
},
//此处省略善达网 sdg.registre.js的部分代码
});
对应的html代码 <input type="text" class="input-block-level tips" name="user.email" id="email">更多的这个页面的html代码大家可以自己到善达网去找到。善达网的后台是用jFinal框架写的,因为没有看过善达网的后台代码,具体后面怎么实现不清楚。
一般在后台的校验方法的写法则是:
//此处以SpringMVC为例,列出核心代码
@Controller
@RequestMapping("/passport/account")
public class UserAction {
@Autowired
UserManager usermanager;//用户管理类,负责从数据中读取用户数据
@RequestMapping(value = "/validateEmail", method = RequestMethod.POST)
public String validateEmail(HttpServletRequest request,HttpServletResponse response) {
String email=request.getParamaters("user.email");
Boolean isExisted=usermanager.isExistedUser(email);//根据eamil号从数据库中查找该email是否已注册
if (isExisted)
response.write("true");
else
response.write("false");
return null;
}
}