„Auto complete“ in Eingabefeldern

„Auto complete“ für Eingabefelder wurde bereits mit dem Internet Explorer 5 und Netscape 6 eingeführt. Aktuelle Browser, wie Firefox, Chrome oder Opera bieten diese Funktion ebenfalls.

Der Browser speichert dazu beim Absenden von Formularen eine Historie der früheren Eingaben, und zeigt diese beim nächsten Mal wieder an, sobald der Benutzer Text eingibt. In der Regel prüft der Browser anhand der Eingabe, welche Einträge in der Historie zum eingegebenen Text passen und zeigt die gefundenen Einträge in einer Liste unter dem Eingabefeld an, aus der man sie bei Bedarf auswählen kann:

autocomplete

Manchmal ist diese Funktion sehr störend – beispielsweise: wenn man eine eigene Liste mit Fundstellen anzeigen möchte (wie in DokuWiki), die dann durch die „auto complete“-Liste verdeckt wird oder zusätzlich dazu erscheint.

Bei Browsern, diese Funktion unterstützen, kann man sie mit dem Attribut „autocomplete“ in INPUT-Elementen auch ausschalten:

Suchbegriff: <input name="search" type="text" autocomplete="off" />

Allerdings hat diese Lösung ein paar Probleme:

  • In (X)HTML ist „autocomplete“ kein gültiges Attribut (das wird es mit HTML5 sein)
  • Wenn eine Alternative zu „auto complete“ (wie beispielsweise eine Direktsuche, die während der Eingabe Fundstellen unter dem Eingabefeld anzeigt) nur mit JavaScript realisierbar ist, sollte das Attribut nicht gesetzt sein, wenn JavaScript nicht ausführbar ist

Es ist daher eine sinnvollere Lösung, dieses Attribut mit JavaScript zu setzen. Wo JavaScript nicht ausführbar ist, wird dann das reguläre Verhalten des Browsers beibehalten und die Lösung ist auch XHTML-konform.

Das HTML-Fragment in abgewandelter Form:

Suchbegriff: <input id="seach" name="search" type="text" />

Und der JavaScript-Teil dazu, der am Ende des Dokuments enthalten sein sollte:

<script type="text/javascript">
if(document.getElementById("search") != null)
{
  if(typeof document.getElementById("search").autocomplete != "undefined")
  {
    document.getElementById("search").autocomplete = "off";
  }
}
</script>

Man sollte dabei aber immer bedenken, dass dadurch das normale und erwartete Verhalten des Browsers verändert wird – generell „auto complete“ für jedes Eingabefeld in Formularen auszuschalten, nur weil man sich persönlich daran stört, ist keine gute Idee!

Weblinks

Kommentar hinterlassen

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Sie können folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>