2

Je suis en train de créer un champ de saisie de texte spécialisé pour entrer et éditer les temps. L'une des parties de la fonctionnalité appelle différentes façons de se concentrer sur les différentes composantes de l'heure (heures, minutes, secondes), que j'indique à travers une sélection de texte. La sélection directe est possible avec la souris et cela fonctionne très bien. L'autre fonctionnalité est la navigation au clavier.Pourquoi les touches fléchées, tabulation, etc. ne sont-elles pas reçues par le gestionnaire onkeypress du champ de saisie dans certains navigateurs?

La plupart de cette fonctionnalité repose sur le fait que je suis capable de gérer les événements keypress, de supprimer le comportement par défaut et de substituer une action spéciale à la place.

Dans Firefox, je travaille bien. L'utilisateur peut utiliser les touches fléchées Gauche/Droite ou Tab/Maj-Tab pour se déplacer entre les parties du temps (et quand ils arrivent à la fin, la touche Tab suivante quittera le champ et se concentrera normalement sur l'élément suivant).

Dans Internet Explorer 7 (potentiellement les autres?), Les touches fléchées et l'onglet ne sont même pas reçus par le gestionnaire de touches. Si vous appuyez sur les touches fléchées, la sélection de texte est perdue et le curseur se déplace d'une unité. L'effet de fournir plusieurs champs disparaît et il en résulte un sentiment de contrôle brisé. L'onglet semble également ignorer le gestionnaire et retourne immédiatement à l'élément focalisable suivant.

Y a-t-il des astuces pour intercepter ces clés?

+0

Je dois ajouter que je teste IE7 au sein de VMware hébergé sur Linux –

+0

Trouvé cette référence aussi: http://unixpapa.com/js /key.html –

Répondre

7

Vous devez utiliser onkeydown pour les clés autres que les caractères. onkeypress dans IE ne gère que les clés qui retournent une chaîne.

Pour citer spécifiquement la documentation MSDN:

À partir de Microsoft Internet Explorer 4.0, l'événement se déclenche onkeypress et peuvent être annulés pour les clés suivantes:

  • lettres: A - Z (majuscules et minuscules)
  • Chiffres: 0 - 9
  • Symboles:! @ # $%^& *() _ - + = < [] {},. /? \ | ' `" ~
  • Système:. ESC, barre d'espace, ENTER
+0

Ma première tentative ne déclenche pas onkeydown ou onkeyup pour les touches spéciales, mais je continuerai à jouer avec ce jeu. –

+0

Touches spéciales (CTRL, SHIFT, ALT, F1-F9, etc.) très bien dans IE pour moi, j'ai une page mise en place qui détecte une touche et sort le code clé à une boîte de saisie - beaucoup plus facile que d'essayer de se souvenir d'eux ou de les rechercher. –

Questions connexes