Node.js (Express) Formular wird bei der Übertragung gelöscht

8

Ich arbeite an einem wirklich grundlegenden Registrierungsformular in Node.js (mit Express), und ich versuche, die einfachste Möglichkeit zu finden, grundlegende Formularvalidierung bereitzustellen. Ich bin mit "Express-Validator" gegangen, was einen guten Job zu machen scheint. Mein Ziel ist es jedoch, alle erforderlichen Validierungsnachrichten anzuzeigen und die vom Benutzer eingegebenen Werte zu belassen.

Es scheint, dass die Anforderungsinformationen nicht zurück in den res.render gelangen, was ich für sinnvoll halte. Ich habe jedoch überall nachgedacht, wo ich denken kann, und ich kann keine Referenz finden, die beschreibt, wie Formularfelder nach dem Anzeigen von Fehlermeldungen gefüllt werden.

Unten ist ein kleiner Ausschnitt, der meinen Ansatz beschreibt:

%Vor%     
creativename 28.11.2012, 06:06
quelle

6 Antworten

10

Leider müssen Sie das Formular manuell neu füllen. Wenn Sie Seitenfehler erhalten, geben Sie die Formularwerte an die Ansicht zurück.

%Vor%

Aus Ihrer Sicht würden Sie eine einfache Überprüfung durchführen, um festzustellen, ob es sich um Fehler handelt, und entsprechend neu füllen. Sie müssten verfolgen, welche Fehler für jedes Formularfeld erzeugt werden.

%Vor%

Ein weiterer beliebter Weg ist, Ihr Formular über Ajax an den Server zu senden und alle Ihre Validierungen durchzuführen. Wenn ein Fehler auftritt, bleiben die eingegebenen Formulardaten erhalten und Sie würden den Fehler anzeigen, ansonsten nach der erfolgreichen Anmeldung umleiten. Im Folgenden finden Sie ein Beispiel für die Übermittlung eines Formulars mit Javascript.

%Vor%     
Errol Fitzgerald 28.11.2012, 07:05
quelle
5

Es gibt einen einfachen Weg, den Sie verwenden

%Vor%

Sie können req.body

verwenden %Vor%

Und ich bin mir nicht sicher, welche Vorlagensprache Sie verwenden, aber Sie könnten etwas wie ..

tun %Vor%

Dies gibt dann die gute Eingabe zurück, wenn ok oder die schlechte Eingabe, wenn es korrigiert werden muss.

    
Zebadi 08.10.2013 11:19
quelle
3

Sie können dies mit connect-flash

erledigen

Im Folgenden sind die Code-Snippets in verschiedenen Dateien aufgeführt, um die vom Benutzer eingegebenen Werte wieder in Form zu bringen, wenn Validierungen während der Registrierung mit dem Pass fehlschlagen.

Führen Sie den folgenden Befehl aus, um ein neues Paket in package.json

einzufügen %Vor%

app.js

%Vor%

config / pass.js (Bitte konzentrieren Sie sich auf das Laden von Formulardaten in Flash)

%Vor%

routes / index.js (Bitte konzentrieren Sie sich auf Formulardaten im Flash, die wieder in eine Variable geladen werden)

%Vor%

views / signup.hbs (Bitte konzentrieren Sie sich auf die Werte in den Eingabeelementen)

%Vor%

Hoffe, das hilft.

    
kanna 22.09.2016 07:06
quelle
0

Setzen Sie eine Variable für alle Eingaben, zum Beispiel

%Vor%

und übergeben Sie diese Variable dann an die Ansicht

%Vor%

dann in Ihrer Sicht

%Vor%     
Richard Torcato 13.06.2016 20:14
quelle
0

Wenn Sie jade und form Validator von npm verwenden, ist der beste Teil, dass Sie eine if-Anweisung in jade und dann einfach überprüfen können, ob Fehler dann mit res.render wir die Objekte auch senden. Siehe hierzu

%Vor%

Und in Jade tust du das

%Vor%

Wenn also ein Fehler vorliegt, wird der Wert auf eine Variable im Namen gesetzt, die beim Zurücksenden wiedergegeben wird

Ich denke, Sie können auch in Angular2 / Angular.js

getan werden     
sonu parmani 21.07.2017 01:52
quelle
-1

Überprüfen Sie Ссылка

auf register.html mache das

%Vor%

es könnte ein Fehler wie: KANN NICHT POST /

sein

In diesem Fall verwendet der Autor des obigen Tutorials lib $ .ajaxForm

Sie können auch Ссылка

verwenden

oder $ ('# myform'). submit () Ersetzen durch $ ('# submit-a-link'). click ()

    
sirjay 28.11.2012 08:51
quelle

Tags und Links