我在表单中有以下输入:
<input type="text" id="Value1" />
<input type="text" id="Value2" />
<input type="text" id="Value3" data-val="true" data-val-match="not the same" data-val-match-other="Value1" />
以下jQuery:
jQuery.validator.addMethod("match",
function (value, element, params) {
var other = $("#" + params);
return value == other.val();
});
jQuery.validator.unobtrusive.adapters.add
("match", ["other"], function (options) {
options.rules["match"] = options.params.other;
options.messages["match"] = options.message;
});
当我更改Value3中的值时,它会按预期验证。它到达验证器中的断点,如果它与Value1中的值不匹配,则控件显示为无效。这一切都符合预期。但它也是为Value2做的。如果我在Value2控件上没有data-val属性,为什么会这样做?
答案 0 :(得分:0)
我没有包含'name属性:
<input type="text" id="Value1" name="Value1" />
<input type="text" id="Value2" name="Value2" />
<input type="text" id="Value3" name="Value3" data-val="true" data-val-match="not the same" data-val-match-other="Value1" />
添加后,它按预期工作。