1UnitedPower: Events im Firefox

Beitrag lesen

Meine Herren!

<input type="text" onKeyUp="checkEnter();">

Der EventHandler (checkEnter) wird hier ohne Parameter aufgerufen. Ich würde den EventHandler auch gar nicht im HTML registrieren, sondern mit JavaScript selbst. Das entspricht eher einer guten Trennung von Inhalt und Verhalten.

HTML
<input id="meinInput">

JavaScript

var inputElement = document.getElementById('meinInput');  
  
inputElement.onkeyup = checkEnter;  
  
// Oder noch schöner  
  
inputElement.addEventListener('keyup', checkEnter );

Wie du siehst, wird die Funktion checkEnter im Code gar nicht aufgerufen. Das macht der Browser aber automatisch, wenn das Event ausgelöst wird und wenn er das macht ruft er die Funtkion mit dem Ereignis-Objekt als Parameter auf. Unter der Haube passiert also sinngemäß irgendwo sowas: checkEnter( keyUpEvent );

Im übrigen solltest du zweimal darüber nachdenken, ob du Standard-Funktionalität von Formular-Feldern anrühren möchtest. Viele Nutzer (mich eingeschlossen) reagieren darauf allergisch – in einigen Fällen ist aber sinnvoll. Du solltest dir die Frage stellen, was der Nutzer erwarten würde, wenn er die Enter-Taste drückt. In den meisten Fällen erwartet er wohl, dass das Formular abgeschickt wird.

--
“All right, then, I'll go to hell.” – Huck Finn