2010-07-30 4 views
1

Je suis bloqué sur le problème ci-dessus. J'ai un formulaire simple comme suit, avec une entrée de texte, une liste de sélection et un bouton de soumission. Lorsque le focus est sur la saisie de texte et que j'appuie sur Entrée, le formulaire est soumis. Si l'accent est mis sur la liste de sélection, l'envoi ne se déclenche pas. Je souhaite que le formulaire soit soumis quel que soit le champ concerné.Formulaire HTML - L'envoi du formulaire à l'aide de la touche Entrée ne fonctionne pas lorsque le focus est sur une liste de sélection

<html> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <input id='text1'/> 
     <select> 
      <option value="volvo">Volvo</option> 
      <option value="saab">Saab</option> 
      <option value="mercedes">Mercedes</option> 
      <option value="audi">Audi</option> 
     </select> 
     <input type='submit' onclick='alert("you submitted the form")'/> 
    </div> 
    </form> 
</body> 
</html> 
+0

Eh bien, je n'ai jamais vu un comportement différent. C'est le comportement standard avec select-elements. Vous pourriez frapper le tabulateur et ensuite entrer. Ne devrait pas être si difficile :) –

Répondre

6

Le comportement normal du navigateur est de sélectionner une option avec enter.

Ce que vous pouvez faire est d'attacher un écouteur à l'événement keyDown de l'élément select et soumettre le formulaire lorsque l'utilisateur a appuyé sur Entrée. Par exemple. avec jQuery:

$('#your-select').keydown(function(e){ 
    if (e.keyCode == 13) { 
     $('#your-form').submit(); 
    } }); 

Vous devriez considérer qu'il brise les normes et causerait un problème pour les utilisateurs qui naviguent avec le clavier.

+0

+1 pour le dernier commentaire. C'est le comportement standard du navigateur, laissez-le tranquille. Les utilisateurs du clavier ont besoin de la touche Entrée pour sélectionner l'option en cours lorsque vous utilisez les flèches haut/bas dans une zone de sélection. – bobince

+0

Oui, cela fonctionne mais totalement avec vous utilisez Entrée pour sélectionner une valeur. Alors ... comment puis-je tester si le select est développé (laisser seul - comportement standard) et fermé? – SWebbs

+1

Convaincu mon représentant d'utilisateur que c'était une mauvaise idée – SWebbs

0

Firefox le fait par défaut, pour par exemple vous avez besoin un certain type de javascript cause la fonction IE lie le soumettre à entrer uniquement aux entrées.

+0

En utilisant Firefox 3.6.8 et IE8 et cela ne fonctionne pas – SWebbs

Questions connexes