2010-01-28 8 views
2
$('input').keyup(function(e){ 
    var k = e.keyCode ? e.keyCode : e.which;   
    console.log(k); 

    }); 

. Pourquoi le keyup tire deux fois mais seulement après le deuxième coup pour les clés spéciales (flèches, espace, espace arrière etc.)? - Des solutions sont-elles disponibles pour résoudre ce problème? - la saisie semi-automatique il est éteint - Dans IE il fonctionne bien - Avec le clavier ou la touche fonctionne correctement pour FF et Chrome - Mais je ne peux pas utiliser une touche car il ne fonctionne pas pour IE pour les touches spéciales - Je ne peux pas utiliser le clavier parce que j'ai besoin de la valeur de l'entrée, y compris le caractère que je tape. Comme ça $(this).val(); - (J'en avais besoin pour une recherche en direct). Keydown donnera la valeur mais sans le dernier caractère. Peut-être que vous pourriez me donner une idée dans cette direction - comment capturer la valeur, y compris le dernier char avec le clavier?bug keyup() dans Firefox et Chrome?

+0

Votre question est source de confusion. Juste qu'est-ce que vous essayez de faire exactement? En quoi l'espace est-il une "clé spéciale"? IE déclenche une «pression de touche» juste quand l'utilisateur appuie sur l'espace, et «keyup» ne tirera qu'une seule fois quand une clé est relâchée. –

+0

oui keyup tire une fois sauf pour les flèches, retour arrière, espace, pgDown etc. Mais il a ce problème uniquement dans FF et Chrome. cette fois utiliser la console et vous verrez que la première fois que vous appuyez sur une flèche il ne vous donnera aucun résultat et au second coup par exemple pour la gauche, il reviendra deux fois 37. – silversky

+0

oui touche fonctionne bien dans IE à l'exception des flèches et quelques autres clés. Remplacez la console avec une alerte et essayez de l'exécuter dans IE, vous verrez qu'il ne retournera rien pour les flèches ou retour arrière – silversky

Répondre

0

Basé sur votre question Je suis un peu confus, va combiner le keyup et le .val() pas faire ce que vous voulez?

$('input').keyup(function(e){ 
    liveSearchFunction($(this).val()); 
}); 

Si non, veuillez élaborer un peu plus.

+0

Oui keyup donnera la valeur dont j'ai besoin (y compris le dernier caractère). Mais lorsque j'essaie de naviguer dans la liste des résultats avec les flèches haut et bas, ou que j'appuie sur le retour arrière, le premier coup ne fera rien et le deuxième coup tirera deux fois. (Donc, fondamentalement, il saute sur un résultat). Mettez mon code et regardez de près le résultat de la console lorsque vous appuyez sur les flèches ou retour arrière, entrez etc – silversky

Questions connexes