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 text
casella, 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:
onKeyDown
onKeyPress
onKeyUp
In Windows , l'ordine dei WM_Key
messaggi 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')
- una
carattere è stato ricevuto dall'utenteWM_CHAR('a')
- una
carattere è stato ricevuto dall'utenteWM_CHAR('a')
- una
carattere è stato ricevuto dall'utenteWM_CHAR('a')
- una
carattere è stato ricevuto dall'utenteWM_CHAR('a')
- una
carattere è 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_CHAR
messaggio, quello che si ripete. Altrimenti perdi eventi quando viene premuto un tasto.
In HTML le cose sono leggermente diverse:
onKeyDown
onKeyPress
onKeyDown
onKeyPress
onKeyDown
onKeyPress
onKeyDown
onKeyPress
onKeyDown
onKeyPress
onKeyUp
Html offre una KeyDown
e KeyPress
ogni ripetizione dei tasti. E l' KeyUp
evento viene generato solo quando l'utente rilascia la chiave.
Asporto
- Io posso rispondere
onKeyDown
oonKeyPress
, 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
?