2009-10-08 10 views
8

Me di cuenta antes de publicar esta pregunta que ha habido preguntas similares publicadas sobre este tema antes, sin embargo, el usuario no está interactuando con el campo de texto mediante el uso del teclado en esta instancia, en tal caso vinculando el campo de texto a la " Pegar "acción" o cualquiera de las otras sugerencias ingeniosas no funcionaría en mi caso.Usando JQuery, ¿cómo se detecta si el valor de una entrada de texto ha cambiado mientras el campo todavía tiene foco?

Nuestros usuarios están ingresando un valor de cadena que se escanea desde un código de barras. Lo que estamos intentando hacer es evitar la molestia de que el usuario baje el escáner para ir al campo siguiente después de escanear la información. Sin embargo, estoy teniendo un problema al detectar el cambio en el valor de un campo de texto mientras todavía tiene foco.

Esta es la única parte del rompecabezas que nos falta, porque aplicar el foco al siguiente campo en el formulario es trivial. ¿Alguien puede arrojar luz sobre cómo detectar un cambio en el valor de un campo de texto cuando el dispositivo de entrada NO es el teclado? Ya he intentado usar el evento change() pero no se dispara hasta que el campo ya no tiene foco.

+0

Si está imprimiendo sus propios códigos de barras, puede intentar poner el carácter TAB al final del código, lo he visto de esta manera en VB.net. – TheVillageIdiot

Respuesta

8

Puede escuchar el evento keypress.

<input type="text" id="target" value="" /> 

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); 
+0

Keypress funcionó perfectamente. Por algún motivo, tenía un código en la función de devolución de llamada que causaba que la entrada se cortara. ¡¡¡Gracias!!! –

+1

De nada. – slikts

+3

¿Qué hay de insertar valor con un mouse o cambiar de forma programática el valor o la función de autocompletar formularios? ¿Solo encuestas mortales? – Roman

Cuestiones relacionadas