使用通用按钮和验证摘要序列化和验证多个表单

时间:2013-07-22 22:38:24

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

我在视图上有两个表单 - 每个表单都在不同的选项卡中。我在表单之外放置了一个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;
    });
}
  1. 问题是我无法看到错误消息 验证摘要 - 例如动态添加的验证规则的模型级错误消息和错误消息。

  2. validate()方法返回的对象仅包含动态添加规则的错误消息,而不包含模型级验证消息。

0 个答案:

没有答案