Ctrl + V (Coller) déclenche la fonction de keyup de jQuery TWICE

Comment faire Ctrl + V ou Coller pas déclencher la fonction keyup TWICE?

C’est un problème pour moi parce que j’ai créé une fonctionnalité de saisie semi-automatique et qu’elle affiche deux fois les mêmes données lorsque je les colle dans une zone de texte. J’espère que cela a plus de sens maintenant.

MODIFIER:

Ok les gars, j’ai découvert comment détecter Ctrl + V avec $('#this-id').bind('paste', function() {});

Mais maintenant, une autre question de suivi est de savoir comment le combiner avec keyup afin que lorsque vous paste , l’ keyup ne se déclenche plus.

Ok les gars, merci à vous tous pour vos réponses, mais au fil de mes lectures, beaucoup de blogs disent ceci: ” Si vous implémentez une fonctionnalité de saisie semi-automatique, NE comptez PAS sur la fonction ‘keyup’

J’ai donc changé mon code en $('#this-id').bind('input', function() {});

Et cela a fonctionné, je n’ai pas à m’inquiéter maintenant de coller ou quoi que ce soit d’autre. J’espère que cela aide les autres aussi.

tu peux essayer ça

 $(window).on('keyup', function (event) { if (!event.ctrlKey) { /* here your code for all keys besides CTRL ;-) */ } }); 

Vous pouvez utiliser l’effet anti-soulignement du trait de soulignement pour définir le délai de lecture de l’événement de frappe.

Voir le code de travail à:

JSFiddle

JS:

 var count = 0; function lookup() { $('div#test').html($('input.text').val()); count++; $('div#count').html(count); } $(document).keyup( _.debounce(lookup, 250, true) ); 

HTML:

 
Input:
Keyup Count:

underscore.js de:

http://documentcloud.github.com/underscore/underscore-min.js