我无法让这个 jsFiddle 工作,但它可以在浏览器中工作:http: //jsfiddle.net/vtortola/jYq2X/
我正在尝试添加一个新的自定义规则来比较两个字段。自定义适配器工作,它被调用并设置选项。但是从不调用自定义方法。
我正在准备好 DOM 上执行这个 JS:
$.validator.addMethod("customequal-method", function (val, el, p) {
var $other = $(el).closest('form').find('input[name=' + p.other + ']');
return $other.length && $other.val() == val;
});
$.validator.unobtrusive.adapters.add("customequal", ["other"],
function (options) {
options.rules["customequal-method"] = options.params;
options.messages["customequal-method"] = options.message;
});
$(function(){
$.validator.unobtrusive.parse($('#myform'));
$('[type=button]').click(function(e){e.preventDefault(); $('form').valid();});
$('input[type=text]').blur();
})
这些是 HTML 中的字段:
<input type="text" name="StartDate2" id="StartDate2" value="2"
data-val="true" data-val-customequal="xx xxx" data-val-customequal-other="EndDate2"/>
<input type="text" name="EndDate2" id="EndDate2" value="3"
data-val="true" data-val-customequal="xx xx" data-val-customequal-other="StartDate2"/>
我一直在尝试不同的东西,但似乎没有任何效果。
任何的想法?