在我的表单中有两个字段,它们相互比较以查看它们是否有效:
<input type="text" name="StartDate" id="StartDate" value="2"
data-val="true" data-val-equalto="xx" data-val-equalto-other="EndDate"/>
<input type="text" name="EndDate" id="EndDate" value="3"
data-val="true" data-val-equalto="xx" data-val-equalto-other="StartDate"/>
当我开始模糊时StartDate
,EndDate
也会得到验证。所以 jQuery 设法避免一个和另一个之间的验证循环。
现在,我正在尝试在我的自定义验证规则中实现相同的机制。我从“其他”字段中获取值,如果一切正确,我也会在“其他”中触发验证,但这会以验证循环结束:
$.validator.addMethod("customequal-method", function (val, el, p) {
var $other = $(el).closest('form').find('input[name=' + p.other + ']');
if($other.val() == val){
try{$other.valid();}
finally{return true;}
}
return false;
});
我如何应用与 jQuery 相同的方法?我的意思是,鉴于这两个领域:
<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"/>
我希望在修改 EndDate2 时,在模糊之后,StartDate2 也得到验证,并且两者都以与 jQuery 相同的方式变得有效。
我一直在尝试在 jsFiddle 中编写一个示例,但是我无法使我的自定义方法起作用:http: //jsfiddle.net/vtortola/vu6tm/(如果您发现问题,我将不胜感激),我开始了一个单独的关于这个的线程jQuery unobtrusive custom adapter and method in jsFiddle 上讨论这个问题
干杯。