2014-06-09 3 views
1

J'ajoute des raccourcis clavier à une page Web, mais malheureusement, je continue de rencontrer un bogue récurrent. Idéalement, les raccourcis clavier et non doivent être activés pendant que l'utilisateur saisit un texte comme input. De retour dans les jours IE6 ce fut assez simple, mais de nos jours il y a une grande variété d'entrées de texte semblable, comme input[type=email], input[type=seach], input[type=url] etc ...Meilleure façon de détecter toutes les entrées de type texte

Jusqu'à présent, je l'ai utilisé une liste de plus en plus des sélecteurs pour correspondre à toutes les entrées de type texte que je connais. Ce n'est évidemment pas idéal. Non seulement ça nuit à la performance, mais ce n'est pas une preuve du futur.

Y a-t-il un meilleur moyen?

+0

Je pense qu'il ya juste un chemin plus court *** *** en utilisant ': input' sélecteur jQuery, mais il ne sélectionne pas les éléments avec' contenteditable' à 'true'. –

+0

toutes les entrées ont une propriété 'value' sur laquelle vous pouvez filtrer. – kennebec

Répondre

0

La plupart des entrées répondent au clavier d'une certaine façon (même les cases à cocher vous permettent de les basculer avec la barre d'espace et de sélectionner les éléments vous permettent de les rechercher en tapant). J'exclurais tous les contrôles de formulaire du code de raccourci clavier.

"input, textarea, select, button" 
+0

Idéalement, si un bouton ou 'input [type = submit]' a le focus, les raccourcis clavier devraient s'activer. – Xavi

+0

Ensuite, excluez toutes les entrées sauf celles spécifiques sur lesquelles vous voulez que le JS se déclenche. – Quentin

+0

C'est une idée intéressante. Essentiellement, échanger des faux positifs contre des faux négatifs. Bien qu'il y ait toujours des inquiétudes concernant l'épreuve du futur et peut-être la performance. – Xavi

Questions connexes