2017-10-19 2 views
0

Ich verwende jquery Validierung & jquery.validate.unobtrusive auf meiner Anwendung.Validierung Fehlermeldungen nicht löschen

Auf meiner Seite habe ich etwa 4-5 Kontrollen. Aus diesen sind einige versteckt. Es gibt 3 Knöpfe auf meiner Seite. Auf den ersten Knopf klicke ich auf die versteckten Steuerelemente (Radiobutton und Dropdown). All dies sind Pflichtfelder. Wenn der Benutzer auf die andere Schaltfläche klickt, die die Senden-Schaltfläche ist, werden alle erforderlichen Felder angezeigt. Die dritte Schaltfläche wird verwendet, um zwischen einer anderen Ansicht mit eigenen Steuerelementen zu wechseln.

Mein Problem ist, wenn der Benutzer das Formular mit der zweiten Schaltfläche sendet und wenn die Felder nicht ausgefüllt sind, zeigt es die erforderliche Feldmeldung in Ordnung. An diesem Punkt, wenn ich auf die 3. Schaltfläche klicke, um zu einer anderen Ansicht zu wechseln und dann wieder zu meiner Ansicht zu wechseln, sind die Fehlermeldungen immer noch da. Ich kann diese Fehlermeldungen nicht löschen. Siehe unten Radiobutton, die ich habe:

<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> 

ich Knockout bin mit und auf die Schaltfläche Klick auf die dritte Schaltfläche, wo ich wechseln ich versuche, den folgenden Code zu verwenden, um die Form zu löschen und Reset aber es funktioniert nicht.

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

Eine andere Sache ist, während das Formular abschicken ich den folgenden Code bin mit der Validierung zu zwingen, da diese Kontrollen zunächst versteckt sind:

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

Schließlich kann ich die folgende Spanne sehen, die in die erzeugt wird 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> 

Antwort

0

Sie können den folgenden Code verwenden, um Fehler zu löschen:

//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(); 

Dies wurde entnommen: How to clear jquery validate errors

Verwandte Themen