2016-09-15 3 views
0

Offensichtlich verwende ich @Html.ValidationSummary() in meiner Ansicht, um alle Fehler anzuzeigen, die möglicherweise aufgetreten sind, wenn der Benutzer auf meinem Controller veröffentlicht hat.Konnte ModelState-Fehler clientseitig nicht löschen? Ist es überhaupt möglich?

Dies ist jedoch mein Szenario

  • Die Benutzer Beiträge an die Steuerung und ModelState.IsValid = false;
  • @Html.ValidationSummary() zeigt meine Fehlermeldung an den Benutzer.
  • Jetzt korrigiert der Benutzer den Fehler und klickt auf den Submit-Button.
    Allerdings möchte ich diese Fehlermeldung löschen, da ich dem Benutzer eine andere Option (clientseitige Skript) vor dem eigentlichen Post präsentieren kann.

Ich habe verschiedene Techniken ausprobiert, um den Validierungszusammenfassung Abschnitt vergeblich zu verbergen.

function resetValidation() { 

    $("form").data("valmsg-summary").hide(); 
    $(".field-validation-error").addClass("field-validation-valid"); 
    $(".input-validation-error").addClass("input-validation-valid"); 
    $(".validation-summary-errors").addClass("validation-summary-valid"); 

    $(".field-validation-error").removeClass("field-validation-error"); 
    $(".input-validation-error").removeClass("input-validation-error"); 
    $(".validation-summary-errors").removeClass("validation-summary-errors"); 
}; 

Dies ist das Skript meines Senden.

$("#btnSubmit").click(function (e) { 
     resetValidation(); // Trying to suppress/clear error messages 

     var doPost = true; 
     var p1 = $("#Field1").val(); 
     var p2 = $("#Field2").val(); 
     var p3 = $("#Field3").val(); 

     $.ajax({ 
      type: "GET", 
      url: "/MyController/MyAction", 
      data: { "param1": p1, "param2": p2, "param3": p3 }, 
      async: false 
     }).done(function (data) { 
      if (data > 999) 
      { 
       // I then display a new set of fields for the user to answer 
       doPost = false; 
      } 
     }).fail(function (xhr, status, err) { 
      alert(xhr.responseText); 
     }); 

     return doPost; 
    }); 

Gehe ich in die falsche Richtung?
Ist es möglich, die Modelview-Fehler-Client-Seite zu löschen?

+1

'$ (". Validation-summary-errors "). Empty();' sollte die Fehlermeldungen entfernen –

+0

Das scheint zu funktionieren! ty – PrivateJoker

Antwort

1

Dank Stephen Muecke für die Lösung:

$ ("validation-Zusammenfassung-Fehler.") Leer();.

Verwandte Themen