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
Das MySQL-Protokoll für langsame Abfragen ist seh...
1. Wenn im Internet Explorer die relative Position...
In diesem Artikel wird der spezifische Code von j...
1. Befehlseinführung Der Befehl userdel (User Del...
Ändern Sie den Standardstil der Auswahl, normalerw...
Das Befehlsformat für die MySQL-Anmeldung ist: my...
Vorwort Bisher waren statische IPs, die über Pipe...
Vorwort Nginx ist ein leichtgewichtiger HTTP-Serv...
Inhaltsverzeichnis Vorwort 1. Aktuelle Uhrzeit er...
Die Befehlszeile mysqld –skip-grant-tables kann i...
Inhaltsverzeichnis Vorwort Publish-Subscriber-Mus...
Inhaltsverzeichnis 1. E-Mail 2. Mobiltelefonnumme...
Die MySQL-Installation ist relativ einfach. Norma...
Der Docker-Daemon verwendet HTTP_PROXY , HTTPS_PR...
Ich habe ein halbes Jahr lang nicht gebloggt, wofü...