添加新方法的jQuery验证

添加新方法的jQuery验证,jquery,jquery-validate,Jquery,Jquery Validate,我想做的是添加一个新的验证方法,该方法将验证两个字段是否不相等,具体取决于是否勾选了单选按钮(请参见此处-) 我的代码是有效的,但我不得不通过在实际方法中添加我更愿意传递它的字段来对其进行一点篡改 所以现在我有 jQuery.validator.addMethod("test", function(value, element, param){ // check if dependency is met if (!this.depend(param, element)) return

我想做的是添加一个新的验证方法,该方法将验证两个字段是否不相等,具体取决于是否勾选了单选按钮(请参见此处-)

我的代码是有效的,但我不得不通过在实际方法中添加我更愿意传递它的字段来对其进行一点篡改

所以现在我有

jQuery.validator.addMethod("test", function(value, element, param){
   // check if dependency is met
   if (!this.depend(param, element)) return "dependency-mismatch";
   return value != $("#ImEqDepEq").val();
   },
   jQuery.format("Should not match Equality value.")
);`
显然,我只想($(“#ImEqDepEq”).val()成为我传入的另一个参数

我希望这有点道理,我不擅长解释:(

干杯


Daz

您可以使用
param
选项向规则传递附加信息

$("form").validate({
    rules: {
        ImEqDep: {
            test: {
                depends: function () {
                    return $("#ImEqDepRad1Yes").is(':checked');
                },
                param: '#ImEqDepEq'
            }
        }
    }
});

jQuery.validator.addMethod("test", function (value, element, param) {
    // check if dependency is met
    if (!this.depend(param, element)) return "dependency-mismatch";
    return value != $(param).val();
}, jQuery.format("Should not match Equality value."));

演示:

现场演示,效果不错。我不敢相信解决方案是多么简单和明显。现在问这个问题我真的觉得有点傻:)