2010-07-12 3 views
0

J'ai une zone de texte et un bouton, l'événement de clic de bouton navigue vers un autre emplacement dans le site Web je veux faire la même chose en appuyant sur la touche Entrée mais incapable de le faire extrait suittextbox devrait invoquer un événement de clic de bouton

function call() 
{ 
    document.location= "location.aspx"; 
} 

<input type="text" id="txt1" onkeydown ="if(event.keyCode==13)document.getElementById('bt1').click()"/> 
<input type="button" id="bt1" value ="Hit me" onclick ="call()" /> 
+0

peut-être quelques specifc IE/FF? Saviez-vous que lorsque vous utilisez IE, vous devriez aller pour 'window.event.keyCode' sinon' event.which'? –

Répondre

0

C'est le même que le clic, deux appelleront cette fonction ...

onkeydown ="if(event.keyCode==13) call()" 
+0

pas une bonne idée: et s'il y a d'autres gestionnaires attachés ?? –

+0

Dans ce cas, il ne semble pas avoir d'autres gestionnaires, il définit l'événement à travers les attributs. – BrunoLM

+0

Je crois que c'est un extrait théorique, pas sa page de travail complète :) –

0

Si vous pouvez modifier votre code HTML, vous ne serez probablement besoin de faire de JS pour obtenir cela fonctionne. Les champs INPUT dans votre code HTML doivent être placés à l'intérieur d'un tag FORM (au moins, c'est ce qui a plus de sens dans la plupart des cas).

Si vous pouvez le faire, vous pouvez alors changer l'élément INPUT du bouton type à l'SOUMETTRE et peut alors écouter le onsubmit événement sur votre élément de formulaire. L'événement est déclenché à la fois en appuyant sur la touche Entrée et en cliquant sur le bouton et il fonctionne très bien à travers les navigateurs. Le seul problème est IE qui ne déclenche pas l'événement onsubmit sur un formulaire avec seulement 1 champ de saisie de texte. Pour cela, vous devrez insérer un autre champ dans le formulaire. Vous pouvez le cacher pour votre cas. Plus ref à: http://style-vs-substance.com/development/form-submit-by-enter-key-and-internet-explorer/

EDIT: Exemple de code

<form id="myForm"> 
    <!--[if IE]> 
    <input type="text" style="display: none;" disabled="disabled" size="1" /><![endif]--> 
    <input type="text"/> 
    <input type="submit" value="Search"/> 
</form> 

Puis dans votre JS:

var formHandler = document.getElementById('myForm'); 
formHandler.onsubmit = function(){ 
    //this callback will be invoked both by the search button and enter key now 
    //your logic here 
} 
Questions connexes