Implementierung der Validierung mehrerer Elemente im Formular

Implementierung der Validierung mehrerer Elemente im Formular

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:
  • Vue ElementUI Form-Formularvalidierung
  • Implementierung der Validierungsregel für Vue Element-ui-Formulare
  • Die übergeordnete Vue-Element-UI-Komponente steuert den Formularvalidierungsvorgang der untergeordneten Komponente
  • Detaillierte Erläuterung der Konfigurationsregeln für Element-UI-Formularvalidierungsregeln Common Black Technology
  • Implementierungscode für die Vue ElementUI-Formularvalidierung (mehrschichtige Verschachtelung)
  • Vue ElementUI-Formularvalidierungsfunktionsarray mit mehrschichtiger Verschachtelung
  • Vue + Element realisiert die Formularvalidierungsfunktion
  • Elementimplementierung der Formularvalidierung durch eine v-for-Schleife

<<:  Detailliertes Tutorial zur Installation von MySQL 8.0.13 (rpm) auf Centos7

>>:  So richten Sie eine automatische tägliche Datenbanksicherung in Linux ein

Artikel empfehlen

Lösung zur Verwendung der Baidu-Freigabe auf der HTTPS-Seite

Seit der Aktivierung des https-Zugriffs für die g...

7 interessante Möglichkeiten, versteckte Elemente in CSS zu erreichen

Vorwort Die Ähnlichkeiten und Unterschiede zwisch...

Zusammenfassung des Wissens über MySql-Speicher-Engines und Indizes

Speicher-Engine Was ist eine Datenbank-Speicher-E...

CSS3 realisiert Partikelanimationseffekte beim Matching von Königen

Beim Codieren werden Sie feststellen, dass viele ...

Drei Möglichkeiten zum Kopieren von MySQL-Tabellen (Zusammenfassung)

Tabellenstruktur und deren Daten kopieren Die fol...

Vue3+TypeScript kapselt Axios und implementiert Anforderungsaufrufe

Auf keinen Fall. Es stellt sich heraus, dass es L...

JavaScript implementiert Countdown auf Front-End-Webseite

Verwenden Sie natives JavaScript, um den Countdow...

Instanzmethode für MySQL-String-Verkettung und Festlegen von Nullwerten

#String-Verkettung concat(s1,s2); verkette die St...

Parsen von Apache Avro-Daten in einem Artikel

Zusammenfassung: Dieser Artikel zeigt, wie Avro-D...

Detaillierte Erklärung zur Überwachung von MySQL-Anweisungen

Schnelles Lesen Warum müssen wir SQL-Anweisungen ...