jQuery-Validierung - Mehrere submit-buttons auf einer asp.net form, verschiedenen Validierung Gruppen?
Habe ich eine asp.net -Formular mit einer login-Bereich und ein register Abschnitt. Es gibt zwei submit-buttons, die entsprechen zu den entsprechenden Bereich, login oder registriere dich. Ich bin mit jquery Validierung, aber ich kann nicht einen Weg finden, um anzugeben, Validierung Gruppen als würde ich mit normalen asp.net die Validierung. Wenn ich auf den registrieren-button, jetzt ist es zu Fragen für die login-Felder ausgefüllt werden. Jemand habe irgendwelche Gedanken zu dieser? DANKE!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich vermute, Sie sind mit dieser Validierung plugin: JQuery Validierung . Das plugin verwendet das form-tag als eine Gruppe Validierung so zu erreichen, was Sie wollen, Sie müssen nehmen die Regeln, je nachdem, auf welche Schaltfläche der Benutzer drückt. Auch, müssen Sie die Regeln wieder, die für den Fall, wenn die Validierung fehlschlägt, dann entscheidet der Anwender, klicken Sie auf die Schaltfläche andere.
Hier ein Beispiel:
Dieser Ansatz ermöglicht Ihnen das hinzufügen, ein class-Attribut (group1 oder group2) an jedem Ihrer Eingänge, die fungiert als eine Gruppe Validierung.
Anstatt zu schreiben Seite-spezifischen code, um dieses Problem zu umgehen nutzen Sie die folgende Bibliothek:
https://github.com/bbraithwaite/JQueryValidationForWebForms
NB Source code ist unten, aber die Github-link haben immer die aktuellste Quelle.
Es sitzt auf der Oberseite des jQuery Validation Framework und abstracts Weg, dieses problem durch die Verwendung von Klassennamen als eine Konvention.
Registrieren Sie die validation-Ereignis in der gleichen Weise wie jQuery Validierung (nur mit einem anderen Namen):
Beispiel .ASPX
Basic .aspx Beispiel mit Validierung zwei Gruppen Aussehen könnte, wie auf der Abbildung. Sie würde einfach wickeln Sie jeden logischen Abschnitt und geben Sie einen Klassennamen von "form" und auf die Aktion für das auslösen der Validierung Fall fügen Sie einfach die Klasse "submit":
Quellcode
Nuget Benutzer
PM> Install-Paket JQuery.Die Validierung.WebForms
Entwickelte sich aus dem Lesen Sie den folgenden Beitrag von Dave Ward:
http://encosia.com/asp-net-webforms-validation-groups-with-jquery-validation/
Können Sie immer verwenden einige einfache jquery/javascript zu entfernen, die "validate[required]" Klasse auf dem asp-button OnClientClick und fügen Sie es anschließend wieder auf die anderen Tasten OnClientClick-was ist einfacher als eine änderung der validationengine Dateien oder ersetzen Sie Sie. Ein Beispiel dafür wäre:
Javascript wäre:
Verfolgen Sie die validation-Objekt und entfernen/ersetzen-Regeln direkt. Funktioniert bei mir mit v1.13.0
wenn Sie mit unobtrusive jquery Validierung, alternativ können Sie auch dieses verwenden:
Machen ASP.NET server-Validierung Logik zur Verfügung, um client-side - /jQuery-durch die Anbringung von speziellen CSS-Klassennamen auf die HTML-Elemente, die server-seitige Validierung Steuerelemente.
Den CSS-Klassennamen erzeugt wird vertreten Validierung Gruppen. Also ,zum Beispiel, einige Textboxen und die Tags mit dem class-name für eine Gruppe Validierung und andere Textfelder für eine andere Gruppe Validierung.
Schreiben Sie zum Beispiel, und rufen Sie die C# - Funktion in die Seite PreRender-handler, oder bevor die Seite gerendert wird, zu verleihen-server-Steuerelemente mit speziellen CSS.
Die Funktion wird aufgerufen, in der server-Seite:
Die deklarative syntax der ASPX-Seite vielleicht Ihrem zwei Abschnitte etwa so:
Nun über die gerenderte Seite, die die Ergebnisse sehen .....
Die Seite HTML-Quelltext enthält arrays der erzeugten CSS-Namen vertreten Validierung Gruppen, ein Satz für Validatoren (Validators-) und andere für die Ziele der Validierung (Ziel-)
Diese CSS-Namen sind auch die Darstellung auf der html-Elemente. Hinweis "Ziel-vg1" CSS-Klassen für text-Felder hier, stellvertretend für die Validierung Gruppe #1. Die text-Felder stellen den login-screen/interface auf der Seite (eine von zwei UI-Teile):
Diese zweite Gruppe von Textfeldern ist auf der gleichen ASP.NET Seite (in der gleichen ASP.NET Form) und stellen Sie die Benutzer-Registrierung-Bildschirm/interface (das zweite UI-Teil). Beachten Sie diese Textfelder markiert sind und eine andere Gruppe Validierung mit dem Namen "Ziel-vg2" durch die css-Klasse.
Also wir injizierten speziellen Css-Namen in die ASP.NET fließen, ohne Sie zu unterbrechen oder zu zerbrechen.
Letztlich diese spezielle Ausgabe können Sie benutzerdefinierte Skripts schreiben gegen Sie (z.B. mit jQuery) greifen auf diese spezielle CSS-Klassennamen und die Unterscheidung zwischen Validierung Gruppen auf der client-Seite.
Diesem einfachen Beispiel warnt den Namen der Validierung Gruppen auf der client-Seite zu beweisen, dass Sie gesehen und erkannt. Uff!
jQuery benutzt werden kann um auf die speziellen css-Klassen zu.
Diese nicht alle Fälle abdecken kann. Es könnte wirklich zum Mittagessen, aber war interessant zu machen. Die server - und client-code kann optimiert werden müssen, um persönliche oder Projekt-Geschmack.
(Sie wollen auch auf die Tatsache stützen, dass neuere Browser können verschiedene CSS-Klassen, um ein element mit Hilfe des 'class' - Attribut durch die Trennung der Klasse Namen mit Leerzeichen e.g - class="vg1 animierte helle myclass Ihrer Klasse". Dies ermöglicht den generierten css-Klassennamen angehängt werden, nach den bestehenden Klassen-Namen, ohne dass diese überschrieben werden.)