Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

ValidityState: typeMismatch-Eigenschaft

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.

Die schreibgeschützte Eigenschaft typeMismatch des Interfaces ValidityState gibt an, ob der Wert eines <input>, nachdem er vom Benutzer bearbeitet wurde, nicht den durch das Attribut type des Elements festgelegten Einschränkungen entspricht.

Wenn das Attribut type bestimmte Zeichenfolgen erwartet, wie bei den Typen email und url, und der Wert nicht den durch den Typ festgelegten Einschränkungen entspricht, ist die Eigenschaft typeMismatch auf true gesetzt.

Der Eingabetyp email erwartet eine oder mehrere gültige E-Mail-Adressen, abhängig davon, ob das Attribut multiple vorhanden ist. Eine gültige E-Mail-Adresse umfasst einen E-Mail-Präfix und eine Domain, mit oder ohne Top-Level-Domain. Wenn der Wert der E-Mail-Eingabe keine leere Zeichenfolge, keine einzelne gültige E-Mail-Adresse oder – falls das Attribut multiple vorhanden ist – keine oder mehrere durch Kommas getrennte E-Mail-Adressen ist, liegt ein typeMismatch vor.

Der Eingabetyp url erwartet eine oder mehrere gültige URLs, abhängig davon, ob das Attribut multiple vorhanden ist. Eine gültige URL enthält ein Protokoll, optional mit einer IP-Adresse, oder eine optionale Kombination aus Subdomain, Domain und Top-Level-Domain. Wenn der Wert der URL-Eingabe keine leere Zeichenfolge, keine einzelne gültige URL oder – falls das Attribut multiple vorhanden ist – keine oder mehrere durch Kommas getrennte URLs ist, liegt ein typeMismatch vor.

Eingabetyp Wert Erwarteter Wert
email x@y oder x@y.z E-Mail-Adresse, mit oder ohne TLD
url x: oder x://y.z Protokoll oder vollständige URL mit Protokoll

Wert

Ein boolescher Wert, der true ist, wenn der ValidityState den Einschränkungen nicht entspricht.

Beispiele

Typabweichung bei einem input-Element

Ein typeMismatch tritt auf, wenn eine Diskrepanz zwischen dem über das Attribut type erwarteten value und den tatsächlich vorhandenen Daten besteht. Der typeMismatch ist nur einer von vielen möglichen Fehlern und nur für die Typen email und url relevant. Wenn der bereitgestellte Wert bei anderen Eingabetypen nicht dem auf dem Typ basierenden erwarteten Wert entspricht, treten andere Fehler auf. Wenn beispielsweise der Wert einer number-Eingabe keine Gleitkommazahl ist, ist badInput auf true gesetzt. Wenn die E-Mail-Adresse required ist, aber leer ist, wird valueMissing auf true gesetzt.

html
<pre id="log">Validation logged here...</pre>
<p>
  <label>
    Enter an email address:
    <input id="emailInput" type="email" value="example.com" required />
  </label>
</p>
css
input:invalid {
  border: red solid 3px;
}
js
const emailInput = document.getElementById("emailInput");
const logElement = document.getElementById("log");

function log(text) {
  logElement.innerText = text;
}

emailInput.addEventListener("input", () => {
  emailInput.reportValidity();
  if (emailInput.validity.valid) {
    log("Input OK…");
  } else if (emailInput.validity.typeMismatch) {
    log("Input is not an email.");
  } else {
    log(`Validation failed: ${emailInput.validationMessage}`);
  }
});

Spezifikationen

Spezifikation
HTML
# dom-validitystate-typemismatch

Browser-Kompatibilität

Siehe auch