Vue implementiert eine Countdown-Schaltfläche für den Bestätigungscode

Vue implementiert eine Countdown-Schaltfläche für den Bestätigungscode

In diesem Artikelbeispiel wird der spezifische Code von Vue zur Implementierung der Countdown-Schaltfläche für den Bestätigungscode zu Ihrer Information geteilt. Der spezifische Inhalt ist wie folgt

1. Klicken Sie auf die Schaltfläche „Bestätigungscode senden“ und führen Sie eine logische Beurteilung durch:

▶️ Wenn die E-Mail-Adresse eingegeben wurde und das Format korrekt ist: Der Button ändert sich in „Gesendet“ , ist nicht anklickbar und startet einen Countdown von 120 Sekunden ;
▶️ Wenn die E-Mail-Adresse nicht eingegeben wurde oder das Format falsch ist, wird eine Fehlermeldung angezeigt.

2. Nach Ablauf des 120-s-Countdowns ändert sich die Schaltfläche in „Bestätigungscode erneut senden“ .

html:

<div v-bind:class="{ 'text_email': isActive, 'text_tip': isTip }">{{tip}}</div> //Fehlermeldung<div class="input">
    <i class="ret_icon-email"></i>
    <Eingabe 
      Typ="Text" 
      v-model="E-Mail" 
      v-bind:class="{ 'input_email0' : hatFehler }" 
      v-on:click="Fehler abbrechen" 
      :placeholder="Geben Sie Ihre E-Mail-Adresse ein" 
      id="EingabeE-Mail"
    />
    <br />
    <input type="text" placeholder="Bestätigungscode eingeben" class="input_number" />
    <button class="btn_number" v-bind:class="{gray:wait_timer>0}" @click="getCode()">
        <span 
          Klasse="num_green" 
          v-show="Anzeigennummer" 
          v-bind:class="{num:wait_timer>0}"
        >{{this.wait_timer + "s"}}</span>
        <span 
          Klasse="Spannweite_Nummer" 
          v-bind:Klasse="{gray_span:wait_timer>0}"
        >{{ getCodeText() }}</span>
    </button>
    <br />
</div>

javascript - Argumente:

Daten() {
    zurückkehren {
      Tipp: "Passwort per E-Mail anfordern",
      isTip: false,
      istAktiv: wahr,
      showNum: false,
      wait_timer: falsch,
      hatFehler: falsch,
      E-Mail: ""
    }
},
Methoden: {
    Fehler abbrechen: Funktion (Ereignis) {
      dies.hasError = falsch;
      dies.istActive = wahr;
      dies.isTip = falsch;
      this.tip = "Passwort per E-Mail abrufen";
    },
    getCode: Funktion() {
      wenn (dieser.wait_timer > 0) {
        gibt false zurück;
      }
      wenn (!diese.email) {
        dies.hasError = wahr;
        dies.isActive = falsch;
        dies.istTip = wahr;
        this.tip = "E-Mail darf nicht leer sein";
        gibt false zurück;
      }
      Wenn (
        !/^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/.test(
          diese.email
        )
      ) {
        dies.hasError = wahr;
        dies.isActive = falsch;
        dies.istTip = wahr;
        this.tip = "E-Mail-Adresse ist ungültig";
        gibt false zurück;
      }
      dies.showNum = wahr;
      dies.wait_timer = 120;
      var das = dies;
      var Timerintervall = Intervall festlegen(Funktion() {
        wenn (das.wait_timer > 0) {
          das.wait_timer--;
        } anders {
          Intervall löschen(Timerintervall);
        }
      }, 1000);

      //Rufen Sie hier Ajax auf, um den Bestätigungscode zu erhalten
    },
    getCodeText: Funktion() {
      wenn (dieser.wait_timer > 0) {
        Rückgabe "Gesendet";
      }
      wenn (this.wait_timer === 0) {
        dies.showNum = falsch;
        return "Bestätigungscode erneut senden!";
      }
      wenn (this.wait_timer === false) {
        return "Bestätigungscode senden!";
      }
    },
}

CSS:

.ret_icon-email {
  Hintergrund: URL (../../assets/pics/email.svg) keine Wiederholung; //Das Bild ist ein lokales Bild, Breite: 20px;
  Höhe: 20px;
  Position: absolut;
  oben: 12px;
  links: 16px;
}
.input_email0 {
  Rand: 1px durchgezogen rgba(239, 83, 80, 1);
}
.Eingabenummer {
  Breite: 112px;
  Höhe: 44px;
  Texteinzug: 16px;
  Rand rechts: 12px;
}
.btn_Nummer {
  Breite: 154px;
  Höhe: 44px;
  Rahmenradius: 4px;
  Box-Größe: Rahmenbox;
  Rand: 1px durchgezogen rgba(76, 175, 80, 1);
  Zeilenhöhe: 16px;
  Gliederung: keine;
}
.span_nummer {
  Farbe: rgba (76, 175, 80, 1);
}
.btn_nummer.grau {
  Hintergrund: rgba(242, 244, 245, 1);
  Rand: 1px durchgezogen rgba(0, 0, 0, 0,05);
}
.span_number.grau_span {
  Farbe: #9a9c9a;
}
.num_grün.num {
  Farbe: rgba (76, 175, 80, 1);
}

Effektbild:

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Vue implementiert die Anmeldung per Mobiltelefonnummer und Bestätigungscode (60-Sekunden-Countdown deaktiviert)
  • Implementierung einer 60-Sekunden-Countdown-Funktion des Bildverifizierungscodes basierend auf Vue
  • Vue implementiert einen Countdown, um den Bestätigungscode-Effekt zu erzielen
  • Vue erhält die Countdown-Komponente für den Bestätigungscode
  • Vue-Verifizierungscode 60-Sekunden-Countdown-Funktion einfacher Beispielcode
  • Vue implementiert die Countdown-Funktion der Bestätigungscode-Schaltfläche
  • Einfache Implementierung der 60-Sekunden-Countdown-Funktion des Vue-Verifizierungscodes
  • SMS-Bestätigungscode-Countdown-Demo basierend auf Vue
  • Vue schreibt eine einfache Countdown-Button-Funktion

<<:  Lösen Sie das MySQL-Login-1045-Problem unter CentOS

>>:  Detaillierte Erläuterung des Vorgangs zum Löschen der integrierten Version von Python in Linux

Artikel empfehlen

Lösung für Linux, das nicht alle Befehle unterstützt

Was soll ich tun, wenn Linux nicht alle Befehle u...

Optimierte Aufzeichnung der Verwendung von IN-Datenvolumen in Mysql

Die MySQL-Versionsnummer ist 5.7.28. Tabelle A ha...

JavaScript implementiert die Maussteuerung eines frei beweglichen Fensters

In diesem Artikel wird der spezifische JavaScript...

So starten Sie eine Transaktion in MySQL

Vorwort In diesem Artikel wird hauptsächlich besc...

Detaillierte Erläuterung der Windows-Zeitserver-Konfigurationsmethode

Kürzlich habe ich festgestellt, dass die Serverze...

8 Tipps für Vue, die Sie nach dem Lesen lernen werden

1. Verwenden Sie immer :key in v-for Die Verwendu...

Verwenden von jQuery zum Implementieren des Karusselleffekts

Was ich Ihnen heute zeige, ist die Verwendung von...

Einfache Implementierungsmethode der bidirektionalen Datenbindung im JS-Projekt

Inhaltsverzeichnis Vorwort Publish-Subscriber-Mus...

Tatsächlicher Datensatz zur Wiederherstellung der MySQL-Datenbank nach Zeitpunkt

Einführung: MySQL-Datenbankwiederherstellung nach...

Bei MySQL-Zeichentypen wird die Groß-/Kleinschreibung beachtet.

Standardmäßig sind MySQL-Zeichentypen nicht case-...

Tipps zum Implementieren mehrerer Rahmen in CSS

1. Mehrere Grenzen[1] Hintergrund: Box-Shadow, Um...