1unitedpower: jQuery 2 Eingabefelder vergleichen

Beitrag lesen

wie kann man 2 Eingabefelder mit jQuery "Live" vergleichen? Gibt es da eine spez. Funktion dafür oder ein Tutorial?

Zerlege das Problem in seine einzelnen Bestandteile. Zunächst solltest du eine klare Vorstellung davon gewinnen, was "Live" in diesem Zusammenhang bedeutet. Die Anführungszeichen deuten darauf hin, dass hier Unkarheit besteht. Bei Eingabefeldern ist eine praktische Antwort darauf: wenn sich der Wert des Feldes ändert, bzw. wenn eine Benutzereingabe stattfindet. Das klingt redundant, Browser sind sich in diesem Punkt allerdings nicht so richtig einig. Nachdem das nun geklärt ist, kannst du schon mal den richtigen Rahmen für den Vergleich schaffen, indem du auf die entsprechenden Ereignisse lauschst. Der eigentliche Vergleich erfolgt später.

const $passwords = $('#Pass,#Pass2')
$passwords.on('change', comparePasswords)
$passwords.on('input', comparePasswords)

Übrig bleibt nun die Funktion comparePasswords.

function comparePasswords () {
  const $password1 = $('#Pass')
  const $password2 = $('#Pass2')
  if ($password1.val() === $password2.val()) {
    // Passwörter sind identisch
    // Evtl. frühere Fehler löschen
    $password1.get(0).setCustomValidity('')
    $password2.get(0).setCustomValidity('')
  } else {
    // Passwörter weichen voneinander ab
    // Fehlermeldungen setzen
    $password1.get(0).setCustomValidity('Passwörter stimmen nicht überein')
    $password2.get(0).setCustomValidity('Passwörter stimmen nicht überein')
  }
}