Onclick und inputfield?

4 Antworten

Hänge dich an das submit-Event. Mit der preventDefault-Methode kannst du die Ausführung des Standard-Handler verhinden. Das heißt, der Browser wird keinen Request verschicken, was das Neuladen der Seite bewirken würde.

HTML-Formular:

<form id="some-form">
  <input required type="email">
  <button>Send</button>
</form>

JavaScript:

document.getElementById("some-form").addEventListener("submit", evt => {
  evt.preventDefault();
  /* do something ... */
});

Die Validation der E-Mail kann der Browser übernehmen. Die Voraussetzung dafür ist, dass das Eingabefeld vom Typ email ist und als erforderliches Feld markiert wird.

Am einfachsten validierest du eine Email mit hilfe eines Regex, siehe https://stackoverflow.com/questions/46155/how-can-i-validate-an-email-address-in-javascript

alternativ kannst du das Feld auch einfach zu einem type email machen und ein required hinzufügen, dann brauchst du nicht mit JS validieren

Woher ich das weiß:Studium / Ausbildung – Studium in theoretischer Informatik (Master)

Sebbo588 
Beitragsersteller
 15.08.2022, 11:19

Danke für deine Hilfe :)

requiered ist schon hinzugefügt. Also es validiert schon automatisch.

Nur wenn ich dann auf den button einloggen clicke startet ja mein Event.

Folgendes:

Function Einloggen {

Let Login =

document.getElementById('Anmelden').value;

Let Password = document.getElemenById('Password').value;

Nun das Event:

If(Login && Password.value.length){

document.getElementById('id').style.display = 'none';

}

}

Nun wenn ich auf den Button Einloggen drücke, wirs das Event allerdings schon ausgelöst wenn ich beispielsweise nur ein zeichen bei password und email eingebe, was nicht sein sollte. Sondern es sollte erst passieren wenn das inputfield besipielsweise a@a hat. Requiered sagt zwar bitte geben sie eine gültige Email an aber das Event wird trotzdem auagelöst 😅

0
Sebbo588 
Beitragsersteller
 15.08.2022, 11:20
@Sebbo588

Hinter Function einloggen natürlich () hatte ich vergessen

0

Wenn du in einer Form bist, sollte type="email" das Absenden von einer invaliden Mail Adresse (invalide im Sinne des dahinter liegenden regulären Ausdruckes) eigentlich verhindern.

Falls das aus irgendeinem Grund nicht geht, email.indexOf("@") !== -1 , wie FaTech bereits schrieb.