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

Detaillierte Einführung und Verwendungsbeispiele für Map-Tag-Parameter

Karten-Tags müssen paarweise vorkommen, d. h. <...

Beispiel für die Methode „Mysql implementiert Nullwerte zuerst/letzten“

Vorwort Wir wissen bereits, dass MySQL den SQL-Be...

HTML+CSS+JavaScript zum Erstellen eines einfachen Tic-Tac-Toe-Spiels

Inhaltsverzeichnis Implementieren von HTML CSS hi...

Einführung in die Vue-Schaltflächenberechtigungssteuerung

Inhaltsverzeichnis 1. Schritte 1. Definieren Sie ...

So unterstützen Sie vollständiges Unicode in MySQL/MariaDB

Inhaltsverzeichnis Einführung in utf8mb4 Fehler b...

Lernen Sie die Vue-Middleware-Pipeline in einem Artikel kennen

Beim Erstellen eines SPA müssen Sie häufig bestim...

Detaillierte Erklärung zum Festlegen des Kontextpfads in der Webanwendung

URL: http://hostname.com/contextPath/servletPath/...

Natives JS zum Erzielen eines coolen Paging-Effekts

In diesem Artikel wird anhand eines Beispiels ein...

Benutzerdefinierte Tabbar-Komponente für das WeChat-Applet

In diesem Artikel wird der spezifische Code der b...