在将表单发送到服务器之前,我正在使用jQuery-Validation-Engine进行一些客户端检查。
我知道您可以检查以确保两个字段匹配,使用validate[equals[fieldId]]
wherefieldId
是您要匹配的字段的 id。例如,如果您想确保密码匹配,这很有用。
现在我正试图找到一种方法来确保字段不匹配。例如,如果我想确保密码字段与用户名字段不匹配。
有没有人能让这个工作?还有其他想法吗?
谢谢。
在将表单发送到服务器之前,我正在使用jQuery-Validation-Engine进行一些客户端检查。
我知道您可以检查以确保两个字段匹配,使用validate[equals[fieldId]]
wherefieldId
是您要匹配的字段的 id。例如,如果您想确保密码匹配,这很有用。
现在我正试图找到一种方法来确保字段不匹配。例如,如果我想确保密码字段与用户名字段不匹配。
有没有人能让这个工作?还有其他想法吗?
谢谢。
经过一些研究和反复试验,我回答了我自己的问题。我将在这里发布我所做的事情,以便其他需要做同样事情的人有参考。
事实证明,您需要以与添加自定义 regex相同的方式创建一个新的自定义函数。如何应用自定义正则表达式已得到很好的记录,但是关于如何实现自定义函数(不调用第 3 方函数)的内容并不多。
深入研究语言文件可以更好地了解如何处理它。
我必须创建一个自定义验证器,并在语言文件中附加一个函数(在本例中为 jquery.validationEngine-en.js):
"notEqual": {
"func": function(field, rules, i, options){
return (field.val() == $('#username').val()) ? false : true;
},
"alertText": "* Username and password must be different"
},
在我的 html 标记中,我像这样使用它:
<input type="hidden" name="username" value="yourPassword" id="username"/>
<input class="validate[custom[notEqual]]" type="password" name="confirmPassword" value=""/>
希望对某人有所帮助。
谢谢您的帮助。您也可以使用 funcCall 执行此操作。
在您的情况下,HTML 是:
<input class="validate[funcCall[notEqual]]" type="password" name="confirmPassword" value="">
功能是:
function notEqual(field){
if(field.val() == $('#username').val()){
return "* Username and password must be different";
}
}
当您拥有可以从其他库或代码的其他区域重用的验证功能时,这可能很有用。
http://posabsolute.github.io/jQuery-Validation-Engine/#validators/funccall-methodname