jquery validate 验证去除记忆方法

问题说明: 在jquery.validate中使用remote,但是remote只是校验第一次,如果通过了,下次及之后都不会再向服务器请求。

例如验证码,先输入验证码,校验通过后,然后点击换一个验证码,验证码的校验一样是通过的,因为remote没有再向服务器重新发送校验请求。

原因是jquery.validate代码中使用了如下代码:

意思是如果之前已经校验了,则直接使用之前的验证结果。

if ( previous.old === value ) {
    return previous.valid;
}
 
  

解决方法一:(不推荐)

在jquery.validate.js中找到代码,然后把上面的代码注释掉。

但这种方法不被推荐,怕影响到使用功能。

解决方法二:既然有数据之前的验证结果,我们就可以把之前的验证结果清除。


$("#mobileRand,#compName").change(function(){
        clearPreviousValue();
});

function clearPreviousValue(){
    if($(".remote").data("previousValue")){
        $(".remote").data("previousValue").old = null;
    }
};

你可能感兴趣的:(java)