如何实现像MVC数据注释这样的JQuery验证?

问题描述:

我使用MVC并有一个主/详细信息视图页面。细节实际上是一个局部视图,其中一些输入字段是一个保存按钮,如下所示。如何实现像MVC数据注释这样的JQuery验证?

<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; 
} 

我用数据valmsg换因为在查看源代码页面的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> 

而且我得到的错误如未捕获错误:语法错误,无法识别的表达式:data-valmsg-for =“Disc”

如何在master中验证数据注释等细节部分。任何线索。

感谢

帕塔

+0

您需要使用属性选择器:'$('data-valmsg-for =“Disc”')' - >'$('[data-valmsg-for =“Disc” ]')'。您还应该查看jQuery Validate插件。这是MVC不引人注目的验证在底层使用的,并且都可以使用前端的数据属性进行设置 –

如果你想针对一个数据 - 属性,你必须使用方括号选择。另外我不确定你可以在span上使用val()。试试这个:

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