Avec JQuery, comment détecter si la valeur d’une entrée de texte a changé alors que le champ a toujours le focus?

J’ai remarqué avant de poster cette question que des questions similaires avaient déjà été posées sur ce sujet, mais l’utilisateur n’interagit pas avec le champ de texte en utilisant le clavier, dans ce cas, il lie le champ de texte au “Coller” l’action ou l’une des autres suggestions astucieuses ne fonctionnerait pas dans mon cas.

Nos utilisateurs entrent une valeur de chaîne qui est scannée à partir d’un code à barres. Ce que nous essayons de faire est d’éviter que l’utilisateur pose le scanner pour passer au champ suivant après avoir numérisé les informations. Toutefois, je ne parviens pas à détecter le changement de valeur d’un champ de texte alors qu’il est toujours actif.

C’est la seule partie du puzzle qui nous manque, car appliquer le focus au champ suivant du formulaire est sortingvial. Quelqu’un peut-il nous expliquer comment détecter un changement de valeur d’un champ de texte lorsque le périphérique de saisie n’est PAS le clavier? J’ai déjà essayé d’utiliser l’événement change (), mais il ne se déclenche que lorsque le champ n’a plus le focus.

Vous pouvez simplement écouter l’événement de keypress .

  var target = $('#target'), val = target.val(); function monitor() { var current_val = $(this).val(); if (current_val != val) { console.log('changed from', val, 'to', current_val); val = current_val; } } target.keypress(monitor); 

Eh bien, il y a toujours une force brute: interrogez-le avec setInterval() .