Sto cercando di ottenere il testo in una casella di testo mentre l'utente lo digita ( jsfiddle playground ):
function edValueKeyPress() {
var edValue = document.getElementById("edValue");
var s = edValue.value;
var lblValue = document.getElementById("lblValue");
lblValue.innerText = "The text box contains: " + s;
//var s = $("#edValue").val();
//$("#lblValue").text(s);
}
<input id="edValue" type="text" onKeyPress="edValueKeyPress()"><br>
<span id="lblValue">The text box contains: </span>
Il codice viene eseguito senza errori, tranne che il valore della input textcasella, durante onKeyPressè sempre il valore prima della modifica:

Domanda : come ottengo il testo di una casella di testo durante
onKeyPress?
Bonus Chatter
Ci sono tre eventi relativi a "l'utente sta digitando" nel DOM HTML:
onKeyDownonKeyPressonKeyUp
In Windows , l'ordine dei WM_Keymessaggi diventa importante quando l'utente tiene premuto un tasto e il tasto inizia a ripetersi:
WM_KEYDOWN('a')- l'utente ha premuto il AtastoWM_CHAR('a')- unacarattere è stato ricevuto dall'utenteWM_CHAR('a')- unacarattere è stato ricevuto dall'utenteWM_CHAR('a')- unacarattere è stato ricevuto dall'utenteWM_CHAR('a')- unacarattere è stato ricevuto dall'utenteWM_CHAR('a')- unacarattere è stato ricevuto dall'utenteWM_KEYUP('a')- l'utente ha rilasciato la Achiave
Risulterà in cinque caratteri visualizzati in un controllo di testo: aaaaa
Il punto importante è che tu risponda al WM_CHARmessaggio, quello che si ripete. Altrimenti perdi eventi quando viene premuto un tasto.
In HTML le cose sono leggermente diverse:
onKeyDownonKeyPressonKeyDownonKeyPressonKeyDownonKeyPressonKeyDownonKeyPressonKeyDownonKeyPressonKeyUp
Html offre una KeyDowne KeyPressogni ripetizione dei tasti. E l' KeyUpevento viene generato solo quando l'utente rilascia la chiave.
Asporto
- Io posso rispondere
onKeyDownoonKeyPress, ma entrambi sono ancora sollevato prima che ilinput.valueè stato aggiornato - Non posso rispondere
onKeyUp, perché non succede quando il testo nella casella di testo cambia.
Domanda: come ottengo il testo di una casella di testo duranteonKeyPress ?