jquery validation在自定义验证时常常需要动态返回一些信息,例如当前输入框的值.但validation的验证消息是在页面初始化完后就已经生成.这时就需要在自定义messages中定义函数,这样才能达到我们要的效果,下面是一个例子,说的是验证当前用户是否存在,如果不存在,将当前输入的用户名带到注册页面:
然后就是message了:
$.validator.addMethod("checkUser",function(value,element,params){
var state='false';
jQuery.ajax({
url:"portal/register/checkemail.do'/>",
data: {email:$("#email").val()},
type: 'POST',
async:false,//必需异步,否则就回过早地返回false了
success: function(data) {
if(data.emailState=="user")
state = true;
}
});
return state;
});
然后就是message了:
messages:{
username:{
checkUser:function(){
return "This user does not exist! I want to <a href='/register.html?passEmail="+$("#userName").val()+"' >register</a> with this email. "
}
}
}