MVC-Formularüberprüfung in mehreren Tabs - automatisches Springen zum Tab mit Validierungsfehlern?

9

Ich habe einen Tabstrip mit mehreren Tabs. In jeder Registerkarte habe ich eine Anzahl von Textfeldern, die der Benutzer eingeben kann. Der Tabstrip ist von einem Formular umgeben und befindet sich direkt unter einer Senden-Schaltfläche.

Ich habe die Validierung der Modellattribute kommentiert. Validierungen funktionieren einwandfrei mit Jquery-Validierung. Wenn der Benutzer jedoch einen Eingabefehler in einem Feld macht, zu einem anderen Tab wechselt und auf "Senden" drückt, wird der Fehler auf der inaktiven Registerkarte angezeigt und somit vom Benutzer nicht gesehen. Ich möchte, dass die Jquery-Validierung automatisch auf die Registerkarte mit dem Überprüfungsfehler wechselt, damit der Benutzer sie sehen kann. Ist das möglich?

    
tobias 12.06.2011, 07:22
quelle

1 Antwort

6

Ich denke nicht, dass es eine Out-of-the-Box-Lösung dafür gibt. Aber Sie können es in Javascript ziemlich einfach tun. Was Sie tun, ist auf Formular senden Sie den Inhalt der einzelnen Registerkarte überprüfen, und wenn Sie Validierung Fehler finden, dann wechseln Sie zu dieser Registerkarte.

hier ist ein Beispiel:

%Vor%

In diesem Beispiel wird davon ausgegangen, dass die ID Ihres Formulars myForm lautet und dass Ihre Tab-ID Tabs ist. Außerdem wird davon ausgegangen, dass ClientValidationEnabled = true und UnobtrusiveJavaScriptEnabled = true in web.config vorhanden sind. Dieses Code-Snippet wechselt zur ersten Registerkarte mit Fehler.

Dieser Code ist nur Beispiel und könnte refaktoriert werden, aber es zeigt Idee.

    
Andrej Slivko 12.06.2011, 08:36
quelle