如何实现像MVC数据注释一样的jQuery验证?

时间:2017-10-18 11:18:41

标签: javascript jquery model-view-controller data-annotations

我正在使用MVC并拥有主/详细信息视图页面。细节实际上是一个局部视图,其中一些输入字段是一个保存按钮,如下所示。

<button type="button" id="btnAddDetails" class="btn btn-primary">Add Details <span class="glyphicon glyphicon-plus"></span></button>

保存按钮将暂时保存详细信息数据。

主视图中有一个提交按钮。当我单击提交按钮时,它会在各个表中保存主数据和详细信息数据。我想单独验证master和details字段。当我在详细信息视图(部分视图)中单击按钮时,它将使用详细信息模型验证数据,最终提交将使用主模型检查主数据。通过使用数据注释可以轻松完成主数据验证。但是我如何验证细节。因为主数据和详细信息都放在一个Html.BeginForm()中。我正在尝试使用jQuery验证按钮点击事件的详细信息:

if ($('#Disc').val() == '')
{
    $('data-valmsg-for="Disc"').val("Please enter Diacount");
    return false;
}

我使用data-valmsg-for因为在视图源页面中HTML就像:

<input class="form-control text-box single-line" data-val="true" data-val-number="The field Discount must be a number." id="Disc" name="Disc" type="text" value="">

<span class="field-validation-valid text-danger" data-valmsg-for="Disc" data-valmsg-replace="true"></span>

我收到的错误就像

Uncaught Error: Syntax error, unrecognized expression: data-valmsg-for="Disc"

如何在master中验证数据注释等详细信息。

1 个答案:

答案 0 :(得分:0)

如果要将数据属性作为选择器进行定位,则必须使用方括号。另外,我不确定你可以在跨度上使用val()。试试这个:

$('[data-valmsg-for="Disc"]').html("Please enter Diacount");