ReferenceError: l'événement n'est pas défini dans mozila firefox

Ce code ne fonctionne pas pour moi dans firefox (V21.0) mais fonctionne dans IE (V9, V10) et Chrome (V 27.0.1453.110 m)

Méthode cal:

<input type="text" id="txt1" class="search-bar-input" onkeyup="handleKeyPress('btn1');"> 

Méthode de défenition:

 function handleKeyPress(searchButtonId) { if (event.keyCode === 13) { alert(event.KeyCode); } } 

Message d'erreur:

 ReferenceError: event is not defined if (event.keyCode === 13) { 

Quelqu'un a-t-il une idée pour résoudre le problème?

Utilisation

 <input type="text" id="txt1" class="search-bar-input" onkeyup="handleKeyPress(event, 'btn1');"> 

alors

 function handleKeyPress(event) { event = event || window.event //For IE if (event.keyCode === 13) { alert(event.keyCode); } } 

Demo: Fiddle

Vous pouvez stocker le paramètre btn1 comme un attribut btn1 data-* et utiliser un Javascript discret pour attribuer le gestionnaire d'événements (au lieu de en ligne).

Également votre alert(event.KeyCode); ligne alert(event.KeyCode); Est faux, le K dans KeyPress devrait être en minuscule k .

Violon

HTML

 <input type="text" id="txt1" class="search-bar-input" data-searchButtonId="btn1" /> 

Javascript:

 function handleKeyPress(event) { if (event.keyCode === 13) { console.log(event.keyCode + this.getAttribute("data-searchButtonId")); } } window.onload = function(){ document.getElementById("txt1").onkeyup = handleKeyPress; }