【问题标题】:How can I clear the server-side MVC model validation errors from a bootstrap modal?如何从引导模式中清除服务器端 MVC 模型验证错误?
【发布时间】:2014-05-04 11:59:06
【问题描述】:

我有一个“客户列表”页面,其中包含一个“添加”按钮,该按钮会弹出一个引导模式,允许用户输入新客户的详细信息。

模态框的主体由部分视图生成,最初呈现为“列表”页面的一部分。

当用户单击添加时,表单通过 AJAX 调用提交到服务器。如果存在模型错误,则服务器将通过仅重新发送模态体(带有验证错误)来响应,在客户端将其注入回模态。

我正在以通常的方式使用@Html.ValidationSummary()@Html.ValidationMessageFor() 来添加模型错误。

如果用户现在单击“取消”,然后再次单击“添加”按钮,则模式会重新出现。在这种情况下,我想将其视为一个新的开始,并从模态正文中清除所有验证错误。我知道如何清除客户端(“不显眼”)验证错误,但如何清除@Html.ValidationSummary()@Html.ValidationMessageFor() 添加的错误。

我可以返回服务器并要求它使用新模型重新渲染,但我想我正在寻找不涉及另一个 AJAX 调用的快捷方式。

【问题讨论】:

    标签: jquery asp.net-mvc validation twitter-bootstrap


    【解决方案1】:

    试试下面的代码:

    $.fn.clearErrors = function () {
        $(this).each(function() {
            $(this).find(".field-validation-error").empty();
            $(this).trigger('reset.unobtrusiveValidation');
        });
    };
    

    如果你觉得难以理解,下面的代码也有同样的效果:

    function resetValidation() {
            //Removes validation from input-fields
            $('.input-validation-error').addClass('input-validation-valid');
            $('.input-validation-error').removeClass('input-validation-error');
            //Removes validation message after input-fields
            $('.field-validation-error').addClass('field-validation-valid');
            $('.field-validation-error').removeClass('field-validation-error');
            //Removes validation summary 
            $('.validation-summary-errors').addClass('validation-summary-valid');
            $('.validation-summary-errors').removeClass('validation-summary-errors');
    
        }
    

    【讨论】:

    • 谢谢 - 听起来不错。你能确认第一个应该如何被调用吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多