Je travaille avec le champ de texte de base HTML <input type="text"/>
avec une valeur numérique.Prévenir le comportement par défaut dans la saisie de texte tout en appuyant sur la flèche vers le haut
J'ajoute l'événement JavaScript keyup
pour voir quand l'utilisateur appuie sur la touche fléchée vers le haut (e.which == 38
) - alors j'incrémente la valeur numérique.
Le code fonctionne bien, mais il y a une chose qui me dérange. Safari/Mac et Firefox/Mac déplacent le curseur au tout début lorsque j'appuie sur la touche fléchée vers le haut. C'est un comportement par défaut pour chaque champ de texte <input type="text"/>
autant que je sache et cela a du sens. Mais cela ne crée pas un effet très esthétique du curseur qui saute en arrière et en avant (après que la valeur ait été modifiée).
Le saut au début se passe sur keydown
mais même avec cette connaissance je ne suis pas capable d'empêcher cela. J'ai essayé les éléments suivants:
input.addEventListener('keydown', function(e) {
e.preventDefault();
}, false);
Mise en e.preventDefault()
keyup
événement ne contribue pas non plus.
Y a-t-il un moyen d'empêcher le déplacement du curseur?
Busted it! Merci beaucoup, c'est parfait. :) – riddle
Jusqu'à voter pour "kludge"! A travaillé pour moi, merci pour la réponse. – NotJay