为什么ASP.NET MVC不引人注意的验证应用于未指定的输入?

时间:2014-01-23 10:34:10

标签: jquery asp.net-mvc unobtrusive-validation

我在表单中有以下输入:

<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属性,为什么会这样做?

1 个答案:

答案 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" />

添加后,它按预期工作。