2009-10-08 14 views
8

Ho notato prima di pubblicare questa domanda che ci sono state domande simili postate su questo argomento prima, tuttavia l'utente non sta interagendo con il campo di testo usando la tastiera in questo caso, in questo caso legando il campo di testo al " Incolla "l'azione o uno qualsiasi degli altri suggerimenti accattivanti non funzionerebbe nel mio caso.Utilizzando JQuery, come si rileva se il valore di un input di testo è cambiato mentre il campo ha ancora lo stato attivo?

I nostri utenti inseriscono un valore di stringa scansionato da un codice a barre. Quello che stiamo tentando di fare è evitare il fastidio di avere l'utente che abbassa lo scanner per andare al campo successivo dopo aver scansionato le informazioni. Tuttavia, sto riscontrando un problema nel rilevare il cambiamento di valore di un campo di testo mentre è ancora attivo.

Questa è l'unica parte del puzzle che ci manca, perché applicare il focus al campo successivo sul modulo è banale. Qualcuno può far luce su come rilevare un cambiamento nel valore di un campo di testo quando il dispositivo di input NON è la tastiera? Ho già provato a utilizzare l'evento change() ma non si attiva finché il campo non ha più lo stato attivo.

+0

se si sta stampando il proprio codice a barre, è possibile provare a mettere il carattere TAB alla fine del codice, ho funzionato in questo modo in VB.net. – TheVillageIdiot

risposta

8

È possibile ascoltare solo l'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 ha funzionato perfettamente. Per qualche ragione ho avuto il codice nella funzione di callback che stava causando l'interruzione dell'input. Grazie!!! –

+1

Prego. – slikts

+3

Cosa ne pensi dell'inserimento di un valore con un mouse o della modifica del valore o della funzione di riempimento automatico dei moduli? Solo sondaggi mortali? – Roman

Problemi correlati