我在视图上有两个表单 - 每个表单都在不同的选项卡中。我在表单之外放置了一个Button和一个Validation Summary。
我想要实现的是,当用户点击该按钮时,我想验证两个表单并在公共验证摘要中显示错误。第一种形式包含模型级别的一些验证(使用数据注释)和一些使用Jquery Validation插件规则动态添加的验证。第二种形式包含使用Jquery Validation插件规则动态添加的验证。动态添加验证规则的原因是这些验证是有条件的 - 在某些单选按钮选择上添加和删除等。
以下是chtml的部分内容:
@Html.ValidationSummary(false, "Please correct the following errors:")
<div class="tabbable">
<ul id="ulTabs" class="nav nav-tabs">
<li class="active"><a href="#tab1" data-toggle="tab">Tab 1</a></li>
<li class="hidden"><a href="#tab2" data-toggle="tab">Tab 2</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane fade in active" id="tab1">
<form id="form1" action="#">
...
</form>
</div>
<div class="tab-pane fade in active" id="tab2">
<form id="form2" action="#">
...
</form>
</div>
</div>
</div>
<div class="row-fluid">
<div class="span4">
<button id="btnSave" type="button" class="btn btn-success">Save as a Draft</button>
</div>
<div class="span4">
<button id="btnSubmit" type="button" class="btn btn-primary">Submit</button>
</div>
</div>
这部分剧本:
$(function () {
SaveAsADraftButtonInitialization();
});
function SaveAsADraftButtonInitialization() {
$("#btnSave").click(function () {
var validator = $('#form1, #form2').validate();
validator.form();
var formSerializedData = $('#form1, #form2').serialize();
if ($("#form1, #form2").valid()) {
$.ajax({
type: "POST",
url: '@Url.Action("ActionMethodName", "ControllerName")',
data: formSerializedData,
success: function (data) {
}
});
}
return false;
});
}
问题是我无法看到错误消息 验证摘要 - 例如动态添加的验证规则的模型级错误消息和错误消息。
validate()方法返回的对象仅包含动态添加规则的错误消息,而不包含模型级验证消息。