Déclencher une fonction avec jQuery après une seule lettre qui a été tapé dans une zone de saisie
Je suis en train de faire une simple zone de recherche. Comment puis-je déclencher une fonction juste après une seule lettre qui a été tapé dans une zone de saisie? J'ai utilisé .keyup, mais cela semble inutile, parce que, quand un diacritique caractère est tapé, la fonction est déclenchée trois fois.
<input id="text" type="text" />
<div></div>
<script>
$('#text').keyup(function(){
$('div').append('TEST'+$(this).val());
});
</script>
Le code ci-dessus fonctionne très bien, sauf si vous tapez un caractère diacritique:+, -, ł, ½, ¼, æ, etc.
Je ne peux pas utiliser .pression de touche ou .keydown car il déclenche une fonction avant un caractère est tapé.
ÉDITÉ PLUS TARD:
Je sais que mon exemple, pourrait ne pas être suffisamment clair pour comprendre le problème, mais... Dans mon vrai code à chaque fois qu'une lettre est tapée, une requête SQLite est exécutée. Si un type un caractère diacritique ou une lettre capitale, la requête est exécutée en trois ou deux fois, ce qui ralentit l'ensemble du script. Il ne fera pas une grande différence si vous exécutez le script dans un navigateur web de l'ordinateur, mais il y a un retard important dans les navigateurs mobiles.
OriginalL'auteur lukeshek | 2012-04-14
Vous devez vous connecter pour publier un commentaire.
J'ai considéré, en vérifiant la valeur de la chaîne par rapport à la dernière fois qu'il a été modifié. Donc des combinaisons de touches ne pas exécuter la fonction, sauf si elle provoque la chaîne pour être changé.
http://jsfiddle.net/82sTJ/1/
OriginalL'auteur Tina CG Hoehr
Pour moi, cela doit fonctionner, vous pourrait aussi détecter la clé spécifique étant entré
Content d'avoir pu aider!
OriginalL'auteur Landin Martens