Im Projekt werden häufig Formulartests durchgeführt. Für einen einzelnen Formulartest können Sie das Dokument auf der offiziellen Website von Element anzeigen, das eine ausführliche Einführung enthält. Hier teile ich meine Erfahrungen mit der gleichzeitigen Überprüfung mehrerer Formulare in einem tatsächlichen Projekt und meine Lösung. Jeder ist herzlich eingeladen, eine Nachricht zu hinterlassen und gemeinsam über verwandte Technologien zu diskutieren. Bitte geben Sie mir weitere Ratschläge. Zur Lösung dieses Problems wird hier hauptsächlich Promise verwendet. Nehmen wir ein Beispiel, um die Promise-Methode abstrakt zu verstehen: Wenn du am Wochenende Hotpot essen möchtest, ruf Xiao A an und sag ihm, er soll zu mir zum Hotpot kommen. Alle Gerichte sind fertig, außer den Meeresfrüchten. Du kannst welche mitbringen, wenn du kommst. Dann rief ich meinen Freund Xiao B an und bat ihn, zu mir zum Eintopf zu kommen. Es gibt Meeresfrüchte, aber nicht genug Fleisch. Du kannst etwas mitbringen, wenn du kommst. Dann rief ich meinen Freund Xiao C an: Komm zu mir zum Eintopfessen. Ich habe das ganze Geschirr und wir sind fast fertig mit Wein. Bring mir ein paar Flaschen mit, wenn du kommst. Mir fehlt noch eine Packung Hot Pot Base. Ich holte mein Handy heraus und rief: „Xiao D, komm und hilf mir. Warum seid ihr alle hier? Mein Elektroherd funktioniert nicht richtig. Alles ist vorbereitet. Kannst du den Herd und auch die Packung mit der Base herbringen?“ Eintopf essen ist jetzt ein Kinderspiel, so lecker. Aber diese Angelegenheit. Es läuft nicht immer alles glatt, es gibt immer Leute, die nicht kommen können, oder? Wenn sie nicht kommen können, können wir den Hotpot nicht genießen. Tatsächlich läuft die Überprüfung mehrerer Formulare ähnlich ab. Jedes Formular wird einmal abgefragt. Wenn alle Formulare bestehen, ist alles in Ordnung. Wenn eine Überprüfung fehlschlägt, tut es mir leid, aber ich muss den Benutzer zuerst auffordern, das Formular korrekt auszufüllen. Durch Promise wird die Abfrageerkennung für jedes Formular durchgeführt. Unabhängig vom Ergebnis geben Sie zuerst Promise.all ein und warten, bis alle Formulare abgefragt wurden. Wenn alle in Ordnung sind, lösen Sie es dann aus, was großartig ist. Im Gegenteil, wenn die Ausführung im Catch fehlschlägt, ist die Antwort ok. const formName = ['tableForm1', 'tableForm2', 'tableForm3'] const validiert = (Element) => { returniere neues Promise((lösen, ablehnen) => { wenn (!this.$refs[item]) { lösen() return false } dies.$refs[item].validate((valid) => { if (gültig) { lösen() } anders { reject(new Error('Die Überprüfung ist falsch')) } }) }) } Promise.all(formName.map(item => validiert(item))).then(() => { console.log('Erfolg') }).catch(() => { console.log('fehlgeschlagen') }) } } Abschließend hier noch der vollständige Code: <div Klasse="Startseite"> <el-form :model="tableForm1" ref="tableForm1" :rules="Regeln1" label-width="100px" > <el-form-item label="Preis" prop="Preis"> <el-input v-model.number="tableForm1.price" autocomplete="aus"></el-input> </el-form-item> </el-form> <el-form :model="tableForm2" ref="tableForm2" :rules="rules2" label-width="100px" > <el-form-item label="Alter" prop="Alter"> <el-input v-model.number="tableForm2.age" autocomplete="aus"></el-input> </el-form-item> </el-form> <el-form :model="tableForm3" ref="tableForm3" :rules="rules3" label-width="100px" > <el-form-item label="Name" prop="Name"> <el-input v-model.number="tableForm3.name" autocomplete="aus"></el-input> </el-form-item> </el-form> <el-button type="primary" @click="submitForm">Senden</el-button> <el-button @click="resetForm">Zurücksetzen</el-button> </div> </Vorlage> <Skript> Standard exportieren { Name: "Home", Daten () { zurückkehren { Tabellenform1: { Preis: '' }, Tabellenform2: { Alter: '' }, Tabellenform3: { Name: '' }, Regeln1: { Preis: [{ erforderlich: true, Nachricht: ‚Preis darf nicht leer sein‘, Auslöser: ‚Unschärfe‘ }] }, Regeln2: { Alter: [{ erforderlich: wahr, Nachricht: ‚Alter darf nicht leer sein‘, Auslöser: ‚unscharf‘ }] }, Regeln3: { Name: [{ erforderlich: true, Nachricht: ‚Name darf nicht leer sein‘, Auslöser: ‚unscharf‘ }] } } }, Methoden: { Formular zurücksetzen () { dies.$refs.tableForm1.resetFields() dies.$refs.tableForm2.resetFields() dies.$refs.tableForm3.resetFields() }, Formular absenden () { const formName = ['tableForm1', 'tableForm2', 'tableForm3'] const validiert = (Element) => { returniere neues Promise((lösen, ablehnen) => { wenn (!this.$refs[item]) { lösen() return false } dies.$refs[item].validate((valid) => { if (gültig) { lösen() } anders { reject(new Error('Die Überprüfung ist falsch')) } }) }) } Promise.all(formName.map(item => validiert(item))).then(() => { console.log('Erfolg') }).catch(() => { console.log('fehlgeschlagen') }) } } } </Skript> Dies ist das Ende dieses Artikels über die Implementierung mehrerer Formularvalidierungen in Elementen. Weitere relevante Inhalte zur Elementformularvalidierung finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Detailliertes Tutorial zur Installation von MySQL 8.0.13 (rpm) auf Centos7
>>: So richten Sie eine automatische tägliche Datenbanksicherung in Linux ein
Seit der Aktivierung des https-Zugriffs für die g...
Ich wurde am frühen Morgen durch einen Anruf gewe...
Vorwort Die Ähnlichkeiten und Unterschiede zwisch...
Speicher-Engine Was ist eine Datenbank-Speicher-E...
Beim Codieren werden Sie feststellen, dass viele ...
Tabellenstruktur und deren Daten kopieren Die fol...
Auf keinen Fall. Es stellt sich heraus, dass es L...
1. MySQL installieren (1) Entpacken Sie die herun...
Die detaillierte Installation und Konfiguration d...
Verwenden Sie natives JavaScript, um den Countdow...
In diesem Artikel erfahren Sie mehr über die Opti...
Wenn wir ein Formular erstellen, legen wir häufig ...
#String-Verkettung concat(s1,s2); verkette die St...
Zusammenfassung: Dieser Artikel zeigt, wie Avro-D...
Schnelles Lesen Warum müssen wir SQL-Anweisungen ...