2009-09-18 7 views
1
<form action="page.php" method="post"> 
    <input type="text" name="some_text" /> 
    <input type="submit" name="some_submit"/
</form> 

Je souhaite soumettre ce formulaire en appuyant sur le bouton du clavier défini. Je me demande comment le faire. Si c'était juste un élément <a> ce serait simple - je voudrais juste changer la valeur window.location après avoir manipulé l'événement keypress. Mais il y a des données à envoyer et je n'ai aucune idée de comment résoudre cela.Comment puis-je soumettre un formulaire Web en cliquant sur le bouton du clavier?

Répondre

2

Les données seront transmises automatiquement à la suite de form.submit()

1

donner un nom à la forme

<form name="myform" action="page.php" method="post"> 

Après la gestion des événements de pression de touche ne

document.myform.submit() 

qui va essentiellement soumettre le formulaire. Si vous voulez ajouter plus de paramètres, ajoutez-les comme éléments cachés dans le formulaire.

+0

Veuillez ne pas faire cela. Une façon standard serait - 'document.forms.myform' – kangax

0

Pour un exemple de manipulation de touche, voir http://dev.kanngard.net/Permalinks/ID_20050426091851.html - elle soumet un formulaire si la touche 13 (Entrée) est enfoncée, mais peut être modifiée en une autre touche.

En général: enregistrer une fonction à appeler sur l'événement KeyDown, à l'intérieur de la fonction, vérifier quelle touche a été enfoncée; si nécessaire, soumettez() votre formulaire.

2

Vous pouvez créer un gestionnaire d'événements pour un événement de touche, puis soumettre le formulaire à l'aide de sa méthode submit() pour transmettre toutes les données de formulaire à la page de destinataire "page.php".

En utilisant jQuery, ceci est trivial:

<form id="myForm" action="page.php" method="post"> 
    <input type="text" name="some_text" /> 
    <input type="submit" name="some_submit" /> 
</form> 

<script type="text/javascript"> 

    $('#myForm").keyDown(function(e){ 

     if(e.which == 13) // When key pressed is "Enter" key. 
      $('#myForm').submit(); 

    }); 

</script> 

Lire Javascript Madness: Keyboard Events pour plus d'informations sur l'interprétation des événements de clavier.

0

Je suis en difficulté:

function action(button) { 
if ($('a.'+button+':visible').length > 0) { 
    if ($('a.'+button+':visible').attr('class') == button || $('a.'+button+':visible').attr('class') == 'rotate '+button) { 
     var adr = $('a.'+button+':visible').attr('href'); 
     window.location = adr; 
    } 
    if ($('a.'+button+':visible').attr('class') != button) { 
     $('a.'+button+':visible').click(); 
    } 
} 
    if ($('input.'+button+':visible').length > 0) { 
     $('#form').submit(); 
    } 
} 

Si la variable 'bouton' est le nom de classe et #form Buttonés id de forme. En cliquant sur Envoyer, cela fonctionne normalement, mais cela ne fonctionne pas avec un événement clavier.

Questions connexes