Comment faire ça?
J'ai essayé:
var key = event.which || event.keyCode || event.charCode;
if(key == 8) alert('backspace');
mais ça ne marche pas ...
Si je fais la même chose sur l'événement keypress, cela fonctionne, mais je ne veux pas utiliser keypress car il génère le caractère tapé dans mon champ de saisie. J'ai besoin de pouvoir contrôler ça
mon code:
$('#content').bind('input', function(event){
var text = $(this).val(),
key = event.which || event.keyCode || event.charCode;
if(key == 8){
// here I want to ignore backspace and del
}
// here I'm doing my stuff
var new_text = 'bla bla'+text;
$(this).val(new_text);
});
aucun caractère ne doit être ajouté dans mon entrée, à part ce que j'ajoute avec val () en fait, l'entrée de l'utilisateur doit être complètement ignorée, seule l'action d'appuyer sur la touche est importante pour moi
javascript
jquery
Alex
la source
la source
.bind
, pas comme sélecteur. Devrait être$('content').bind('keypress', ...
Réponses:
Utilisez
.onkeydown
et annulez la suppression avecreturn false;
. Comme ça:Ou avec jQuery, car vous avez ajouté une balise jQuery à votre question:
la source
keydown
ne fonctionne pas dans Chrome Android, il renvoie le vide en cliquant sur retour arrière ou delenter
etbackspace
clés en interne sur lesinput
événements, et ces pressions sur les touches ne l'atteignent pasAvec jQuery
La propriété event.which normalise event.keyCode et event.charCode. Il est recommandé de regarder l'événement pour la saisie des touches du clavier.
http://api.jquery.com/event.which/
la source
event.key === "Retour arrière"
Plus récent et beaucoup plus propre: utilisation
event.key
. Fini les codes numériques arbitraires!Documents Mozilla
Navigateurs pris en charge
la source
Avez-vous essayé d'utiliser «onkeydown»? C'est l'événement que vous recherchez.
Il fonctionne avant l'insertion de l'entrée et vous permet d'annuler l'entrée de caractères.
la source
event.preventDefault()
?return false;
annuler tout événement lors de l'utilisation de jQuery.C'est une vieille question, mais si vous vouliez attraper un événement de retour arrière lors de la saisie, et non keydown, keypress ou keyup - comme j'ai remarqué que l'une de ces fonctions interrompent certaines fonctions que j'ai écrites et provoquent des retards gênants avec le formatage automatique du texte : Vous pouvez intercepter un retour arrière en utilisant inputType:
la source
keydown
avecevent.key === "Backspace" or "Delete"
Plus récent et beaucoup plus propre: utilisation
event.key
. Fini les codes numériques arbitraires!Style moderne:
Documents Mozilla
Navigateurs pris en charge
la source
la source
la source
sur les appareils Android utilisant Chrome, nous ne pouvons pas détecter un retour arrière. Vous pouvez utiliser une solution de contournement pour cela:
la source
which
etkeyCode
à 229. Il doit y avoir un meilleur moyen, ou un meilleur moyen à venir, mais je vais utiliser essentiellement cela pour le moment. ..