【发布时间】:2017-10-18 11:18:41
【问题描述】:
我正在使用 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中的数据注释等细节部分。
【问题讨论】:
-
你需要使用属性选择器:
$('data-valmsg-for="Disc"')-->$('[data-valmsg-for="Disc"]')。您还应该查看 jQuery Validate 插件。这是 MVC 不显眼的验证在后台使用的,并且都可以使用前端的数据属性进行设置
标签: javascript jquery model-view-controller data-annotations