jQuery-Validation-Engine - 确保字段值不相等

时间:2013-02-22 00:30:32

标签: jquery-validation-engine

在将表单发送到服务器之前,我正在使用jQuery-Validation-Engine进行客户端检查。

我知道您可以检查以确保使用validate[equals[fieldId]]匹配两个字段,其中fieldId是您要匹配的字段的ID。例如,如果您想确保密码匹配,则非常有用。

现在我正在尝试找到确保字段匹配的方法。例如,如果我想确保密码字段与用户名字段不匹配。

有没有人能够让这个工作?还有其他想法吗?

感谢。

2 个答案:

答案 0 :(得分:2)

经过一番研究和反复试验后,我回答了自己的问题。我会发布我在这里所做的事情,所以其他需要做同样事情的人会有参考。

原来你需要创建一个新的custom function,就像添加custom regex一样。如何应用自定义正则表达式已有相当详细的文档记录,但没有太多关于如何实现自定义函数(不调用第三方函数)。

在语言文件中挖掘可以更好地了解如何处理它。

我必须创建一个自定义验证器,并在语言文件中附加一个函数(在本例中为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=""/>

希望能有所帮助。

答案 1 :(得分:0)

感谢您的帮助。您也可以使用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