Mon application nécessite une entrée d'utilisateurs. Lors de la saisie d'une valeur dans une zone de texte, les utilisateurs appuient sur Entrée (touche de retour), ce qui appelle un événement onClick de boutons. Cela fonctionne très bien dans IE, FF mais pas Chrome. Sur entrer en chrome, l'événement de frappe n'est pas généré Voici mon extrait de code
$('#myDiv').keypress(function (e) {
alert("Key pressed");
if (e.keyCode == $.ui.keyCode.ENTER) {
alert("enter pressed");
}
});
Quelqu'un pourrait-il apporter sa contribution à ce sujet?
Méthode multi-navigateurs:
$('#myDiv').keydown( function(e) {
var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
if(key == 13) {
e.preventDefault();
alert("enter pressed");
}
});
Testé sur Chrome 24: http://jsfiddle.net/PTauw/1/
keypress
est l'événement correct pour détecter quel caractère a été saisi (bien que dans ce cas particulier, celui de détecter la touche Entrée, keydown
fonctionnerait aussi bien). Cependant, la façon d'obtenir le caractère saisi dans un événement de frappe est incohérente entre les navigateurs. JQuery se normalise donc sur la propriété which
. Voici ce que vous voulez:
$('#myDiv').keypress(function (e) {
alert("Key pressed");
if (e.which == $.ui.keyCode.ENTER) {
alert("enter pressed");
}
});
La référence définitive pour les événements clés: http://unixpapa.com/js/key.html
Ce lien pourrait vous être utile ...
Api Jquery Key Appuyez sur Ou essayez avec ce code
Changez de pression sur keydown:
$('#myDiv').keydown(function(e) {
// your logic
alert("Key pressed");
if (e.keyCode == $.ui.keyCode.ENTER) {
alert("enter pressed");
}
});