jquery validation在自定义验证时常常需要动态返回一些信息,例如当前输入框的值.但validation的验证消息是在页面初始化完后就已经生成.这时就需要在自定义messages中定义函数,这样才能达到我们要的效果,下面是一个例子,说的是验证当前用户是否存在,如果不存在,将当前输入的用户名带到注册页面:
$.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. " } } }