我有一个"客户列表"带&#34的页面;添加"弹出引导模式的按钮,允许用户输入新客户端的详细信息。
模态的主体由部分视图生成,该视图作为"列表的一部分呈现"页面最初。
当用户点击添加时,表单将通过AJAX调用提交给服务器。如果存在模型错误,则服务器将通过仅重新发送模态的主体(具有验证错误)来响应,在客户端将其注入模态中。
我以通常的方式使用@Html.ValidationSummary()
和@Html.ValidationMessageFor()
来添加模型错误。
如果用户现在点击"取消",然后点击"添加"按钮再次出现,模态重新出现。在这种情况下,我想将它视为一个新的开始并清除模态体的所有验证错误。我知道如何清除客户端("不显眼的")验证错误,但如何清除@Html.ValidationSummary()
和@Html.ValidationMessageFor()
添加的错误。
我可以回到服务器并要求它使用新模型重新渲染,但我想我正在寻找一条不涉及另一个AJAX调用的快捷方式。
答案 0 :(得分:4)
请尝试以下代码:
$.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');
}