Jquery-Validierung - show Validierung Zusammenfassung während eifrig Validierung?
Ist es möglich jquery Validierung, um zu zeigen, die Validierung Zusammenfassung über eifrig Validierung?
Ich bin mit MVC 3 (wenn es kommt) und meine Formulare validieren, wenn jedes element den Fokus verliert:
$('#myform').validate({ onfocusout: function(element) { $(element).valid(); } };
Dieser zeigt die individuellen Fehler auf jedem Feld, jedoch möchte ich auch zeigen, die Fehler in der Validierung Zusammenfassung block. Jedoch, dass die Validierung Zusammenfassung zeigt nur, wenn das Formular abgeschickt wird, nicht auf den Fokus verloren.
Ich habe versucht Einhängen in showErrors jedoch, dass nur gibt mir das aktuelle Feld Fehler, nicht die aktuelle Liste der Fehler.
Vollständigkeit halber, hier ist das Formular-code:
@using (Ajax.BeginForm(...))
{
<div class="field-panel">
@Html.EditorFor(m => m.PatientID)
...
</div>
<input type="submit" class="carecon-button-next" value="Next" />
@Html.ValidationSummary(null, new { @class = "validation-summary" })
}
- Sie deuten an, dass Sie bereits eine "Validierung Zusammenfassung"... wie sind Sie zu generieren, der? Es ist nicht angezeigt, überall in Ihrem code.
- Hinzugefügt der rest der Seite code..
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ok, ich denke, ich habe dies aus.
Die Frage ist eigentlich durch die Verwendung der unaufdringlichen Validierung mit MVC 3, da es nicht die jQuery-Validierung Initialisierung für Sie Somit die einzige Möglichkeit zum konfigurieren der Validierung ist durch die Verwendung
form.data("validator").settings
. Jedoch, die versuchen, dieerrorLabelContainer
über dieser Methode, d.h.:... funktioniert nicht, weil die jQuery-Validierung verwendet nur diesen Wert intern in seiner init () - Funktion, zu konfigurieren, ein paar andere Einstellungen wie Containern etc. Ich habe versucht, zu emulieren, was es tut, oder sogar aufrufen
$("#form").data("validator").init()
wieder nach der Einstellung dererrorLabelContainer
, aber damit verursacht seltsame Verhalten und abgespritzt ein paar andere Einstellungen.Also nahm ich einen anderen Ansatz. Erste, sofern ich einen Platz für MVC zu setzen, die individuelle Fehler-strings mit
@Html.ValidationMessageFor()
, und das hinzufügen vondisplay:none
zu halten es versteckt:Dann, in der
showErrors
Rückruf, kopiere ich die entsprechenden Zeichenfolgen in der Validierung Zusammenfassung nach aufrufendefaultShowErrors()
:Dies gab mir das Verhalten wollte ich zeigen/ausblenden der Validierung Fehler als Liste in der übersicht als der Benutzer ausgefüllt, die Felder auf dem Formular.
Ich hatte ähnliche Probleme und schrieb, wie es scheint, ein einfacher Weg, das Verhalten, die Sie suchen:
Dies ist aus der demo-Seite; die
invalidHandler
und der code zum erstellen einer Fehler-Zusammenfassung. Aber Sie wird ausgelöst, aufform
Einreichen, das ist nicht das, was Sie angefordert.Jedoch die
errorLabelContainer:
Methode erfordert keineform
Vorlage. Gemäß der Dokumentation, "Alle Fehler, die Etiketten innerhalb einer ungeordneten Liste mit der ID "messageBox", wie angegeben durch den Selektor übergeben errorContainer option. Alle Fehler-Elemente verpackt in ein li-element, um eine Liste zu erstellen von Nachrichten."Hier ist eine grobe demo zeigt Validierung mit
onfocusout
. Es gibt keinen submit-button, um diesen Punkt zu beweisen. Die#messageBox
sammelt alle Nachrichten, wie Sie gesammelt werden.http://jsfiddle.net/sparky672/bAN2Q/
errorLabelContainer
zu meiner Zusammenfassung div, aber ohne Erfolg-es zeigt nur noch den Fehler in die container auf "Absenden".