![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
Il problema e' che non riesco a gestire gli eventi sulla textbox, ovvero onClick mi ritorna il valore dopo aver digitato la prima cifra |
|
onChange non fa nulla. |
|
Domanda: come gestire la sequenza "stringa+invio"? |
#3
| |||
| |||
|
|
Direi che la domanda si riduce eventualmente al "come gestire il tasto invio": input type="text" onkeydown="if (event.keyCode==13) checkValue(this.value)" / se invece del tasto invio, associ come terminatore il tab sul lettore di codice a barre (io solitamente faccio cosi'), allora il tutto si semplifica: input type="text" onchange="checkValue(this.value)" / oppure, se vuoi scatenare la funzione anche nel caso in cui il valore inserito sia il medesimo: input type="text" onblur="checkValue(this.value)" / |
#4
| |||
| |||
|
#5
| |||
| |||
|
|
Direi che la domanda si riduce eventualmente al "come gestire il tasto invio": input type="text" onkeydown="if (event.keyCode==13) checkValue(this.value)" / [cut] Grazie mille, sei gentilissimo. Stavo provando anche window.event.keyCode, intercettando il 13 e comportandomi di conseguenza. |
#6
| |||
| |||
|
|
Grazie mille, sei gentilissimo. Stavo provando anche window.event.keyCode, intercettando il 13 e comportandomi di conseguenza. Ovvero il primo esempio che ti ho portato? Se il focus deve rimanere sul campo, allora e' sicuramente piu' indicato, altrimenti ti consiglio di usare la tabulazione. |
#7
| |||
| |||
|
|
input type='text' name='barcode' onkeypress='LeggiScan(this);' function LeggiScan(t) { var a=self.document.due; |
|
var k=window.event.keyCode; |
|
if (k==13){ a.test.value=t.value; }else{ a.test.value=''; } |
#8
| |||
| |||
|
|
Ovvero il primo esempio che ti ho portato? Se il focus deve rimanere sul campo, allora e' sicuramente piu' indicato, altrimenti ti consiglio di usare la tabulazione. Ho postato l'approccio che sto seguendo. |
|
Si, il focus rimane li' finche' la sequenza non e' completata. |
|
La ritieni migliore? |
#9
| |||
| |||
|
|
In questo modo quando viene fatta la lettura del codice a barre, al termine della sequenza e' il lettore stesso a far spostare il focus dal campo testo al successivo elemento. |
|
Anche perche' se c'e' un tag form di mezzo, l'invio spesso scatena il submit, la tabulazione no. |
#10
| |||
| |||
|
|
var a=self.document.due; Non usare self. Su una versione di IE, talvolta risulta bacato. |
|
if (k==13){ a.test.value=t.value; }else{ a.test.value=''; } In questo modo la funzione pero' ti viene eseguita ad ogni carattere inserito dal lettore a barre; sei sicuro che e' cio' che vuoi? |
|
Idealmente il campo "test" dovresti resettarlo in un altro momento (prima di inziare la "lettura"), e invocare la funzione "leggiScan" solo nel caso in cui venga premuto /riceva il tasto invio. |
![]() |
| Thread Tools | |
| Display Modes | |
| |