在用户注冊时常常要通过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;
}
}
版权声明:本文博主原创文章,博客,未经同意不得转载。