未清除验证错误消息



我正在使用jquery验证&jquery.validate.uno唐突在我的应用程序上。

在我的页面上,我有大约4-5个控件。其中有些是隐藏的。我的页面上有3个按钮。点击第一个按钮,我会显示隐藏的控件(单选按钮和下拉菜单)。所有这些都是必填字段。当用户单击另一个按钮,即提交按钮时,所有必需的字段都会显示得很好。第三个按钮用于在具有自己控件的不同视图之间切换。

我的问题是,当用户使用第二个按钮提交表单时,如果没有填充字段,则会显示所需的字段消息。此时,当我点击第三个按钮切换到另一个视图,然后切换回我的视图时,错误消息仍然存在。我无法清除这些错误消息。见下面的单选按钮,我有:

<div class="col-sm-10">
<label class="radio-inline">
<input type="radio" value="myValue1" asp-for="Name" class="required" 
data-bind="checked: name" />Name value 1
</label>
<label class="radio-inline">
<input type="radio" value="myValue2" asp-for="Name"  data-bind="checked: 
name" />Name value 2
</label>
<span asp-validation-for="Name" class="danger"></span>

我正在使用敲除和点击我切换的第三个按钮。我试图使用下面的代码来清除和重置表单,但它不起作用。

var validator = $("form").validate();
validator.resetForm();

另一件事是,在提交表单时,我使用以下代码强制验证,因为这些控件最初是隐藏的:

$("form").removeData("validator");
$("form").removeData("unobtrusiveValidation");   
$.validator.unobtrusive.parse($("form"));

最后,我可以看到在html中生成的以下跨度:

<span class="help-block-msg field-validation-valid" data-valmsg-for="Name" 
data-valmsg-replace="true">
<span id="Name-error" class="">This field is required.</span>
</span>

您可以使用以下代码清除错误:

//get the form inside we are working - change selector to your form as needed
var $form = $("form");
// get validator object 
var $validator = $form.validate();
// get errors that were created using jQuery.validate.unobtrusive
var $errors = $form.find(".field-validation-error span");
// trick unobtrusive to think the elements were succesfully validated
// this removes the validation messages
$errors.each(function(){ $validator.settings.success($(this)); })
// clear errors from validation
$validator.resetForm();

这摘自:如何清除jquery验证错误

最新更新