J'ai une page avec deux boutons. L'un est un <button>
élément et l'autre est un <input type="submit">
. Les boutons apparaissent sur la page dans cet ordre. Si je suis dans un champ de texte n'importe où dans le formulaire et que j'appuie sur <Enter>
, l' click
événement de l'élément bouton est déclenché. Je suppose que c'est parce que l'élément bouton se trouve en premier.
Je ne trouve rien qui ressemble à un moyen fiable de définir le bouton par défaut, et je ne veux pas nécessairement à ce stade. En l'absence de quelque chose de mieux, j'ai capturé une touche n'importe où sur le formulaire et, si c'était la <Enter>
touche qui a été enfoncée, je la nie simplement:
$('form').keypress( function( e ) {
var code = e.keyCode || e.which;
if( code === 13 ) {
e.preventDefault();
return false;
}
})
Pour autant que je sache jusqu'à présent, cela semble fonctionner, mais cela semble incroyablement dur.
Est-ce que quelqu'un connaît une technique plus sophistiquée pour faire cela?
De même, y a-t-il des pièges à cette solution dont je ne suis tout simplement pas au courant?
Merci.