Quel est le mode fort> propre fort> de javascript ou jQuery pour filtrer les touches de contrôle em>. Par clés de contrôle em>, je veux dire n'importe quelle touche qui n'est pas A-Z, 0-9 ou des caractères spéciaux (c'est-à-dire!, @, #, Etc.). Je veux simplement filtrer les clés telles que "Shift", "Alt", F1- F9, Caps Lock, etc. P>
Je suis sûr que je pouvais vérifier chaque code ASCII individuel de l'argument de l'événement ... mais je me demande s'il y a une solution "plus propre". P>
Remarque: Je développe une application spécifiquement pour IE 8 EM> P>
4 Réponses :
Utilisez événement.Qui - chaque clé a son propre code. La touche de contrôle est 17, la touche Maj est 16, et @ est deux touches différentes, 16 suivies de 50. Utilisez la démonstration sur cette page pour savoir quelles valeurs sont renvoyées pour chaque touche que vous souhaitez accepter ou ignorer. P>
Cela permettra uniquement A-Z (codes 65 - 90), 0-9 (48 à 57). Notez que Shift code> doit être autorisé, car il est nécessaire de transformer un texte sur une majuscule.
$("...").keydown(function(ev){
var k = ev.which;
if(!(k >= 65 && k <= 90) /* a-z */
|| !(k >= 48 && k <= 57) /* numbers */
|| !(k >= 96 && k <= 111) /* numeric keyboard*/
|| k != 59 || k != 61 || k != 188 || k != 190 || k != 191 || k != 191
|| k != 192 || !(k >= 219 && k <= 222) || k != 32 /* Comma's, etc. */
|| ev.ctrlKey || ev.altKey/* || ev.shiftKey*/){
//Filter
}
})
Comment cela traite-t-il des caractères Unicode comme des maumatismes allemands? Capitales?
Je suis allé avec quelque chose comme ceci:
Oui. La force brute semble être nécessaire :(
BTW qu'est-ce que "clé de pointe de clic droit"?
Un vieux sujet, mais en 2021 événement.Quelle code> est obsolète et
event.keycode code> aussi. Cependant, pour obtenir des clés valides pour l'entrée de l'utilisateur, vous pouvez utiliser une seule condition simple.
if (event.key.length === 1) {
// do stuff
}