2010-11-21 35 views
0

J'utilise cette fonction pour gérer entrer cliquez sur un champ de recherche, mais il tire un autre bouton dans la page, comment arrêter ce bouton d'être tiré et appelez ma recherche() fonction.comment arrêter un bouton d'être tiré lorsque appuyez sur entrer

InputKeyPress(e) { 
    if (window.event) { 
     if (event.keyCode == 13) { 
      search(); 
     } 
    } else { 
     if (e) { 
      if (e.which == 13) { 
       search(); 
      } 
     } 
    } 
} 

Répondre

1

Dans le keyCode == 13 cas, vous devez éviter l'action par défaut de l'événement keypress. La méthode standard pour cela consiste à appeler la fonction preventDefault sur l'objet d'événement (s'il en a une, mais pas sur les versions antérieures d'IE). L'ancienne méthode consiste à renvoyer false à partir de votre fonction de gestionnaire d'événements. Il n'y a pas de véritable danger dans une approche «ceinture et bretelles» de faire les deux. :-)

Vous pouvez également raccourcir votre fonction un peu:

function InputKeyPress(e) { 
    var keyCode; 

    e = e || window.event; 
    keyCode = e.keyCode || e.which; 
    if (keyCode == 13) { 
     search(); 
     if (e.preventDefault) { 
      e.preventDefault(); 
     } 
     return false; 
    } 
} 
1

Vous devez ajouter « return false » comme ceci:

function InputKeyPress(e) { 
    if (!e) 
     e = window.event; 
    var keyCode = e.keyCode || e.which; 
    if (keyCode == 13) { 
     search(); 
     return false; 
    } 

    return true; 
} 

Et aussi changer l'appel de la zone de texte à ceci:

<input .... onkeypress="return InputKeyPress(event);" ...> 

Signification non seulement appeler la fonction mais la "retourner".

+0

Thanx cher u vraiment aidé :) nous lançons et ce bug me rendait fou – Miroo

+1

@Miroo pas de problème, s'il vous plaît marquer l'une des réponses (assez même) comme correctes. :) –