Estoy tratando de obtener el texto en un cuadro de texto mientras el usuario escribe en él ( 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>
El código se ejecuta sin errores, excepto que el valor del input textcuadro, durante onKeyPresses siempre el valor antes del cambio:

Pregunta : ¿Cómo obtengo el texto de un cuadro de texto durante
onKeyPress?
Chatter adicional
Hay tres eventos relacionados con "el usuario está escribiendo" en el DOM HTML:
onKeyDownonKeyPressonKeyUp
En Windows , el orden de los WM_Keymensajes se vuelve importante cuando el usuario mantiene presionada una tecla y la tecla comienza a repetirse:
WM_KEYDOWN('a')- el usuario ha pulsado la AteclaWM_CHAR('a')-ase ha recibido un personaje del usuarioWM_CHAR('a')-ase ha recibido un personaje del usuarioWM_CHAR('a')-ase ha recibido un personaje del usuarioWM_CHAR('a')-ase ha recibido un personaje del usuarioWM_CHAR('a')-ase ha recibido un personaje del usuarioWM_KEYUP('a')- el usuario ha soltado la Allave
Dará como resultado la aparición de cinco caracteres en un control de texto: aaaaa
Lo importante es que tú respondas al WM_CHARmensaje, el que se repite. De lo contrario, perderá eventos cuando se presione una tecla.
En HTML, las cosas son ligeramente diferentes:
onKeyDownonKeyPressonKeyDownonKeyPressonKeyDownonKeyPressonKeyDownonKeyPressonKeyDownonKeyPressonKeyUp
Html ofrece una KeyDowny KeyPresscada tecla repetida. Y el KeyUpevento solo se genera cuando el usuario suelta la tecla.
Para llevar
- Yo puedo responder a
onKeyDownoonKeyPress, pero ambos todavía se levantan antes de que elinput.valuese ha actualizado - No puedo responder
onKeyUp, porque no sucede cuando cambia el texto en el cuadro de texto.
Pregunta: ¿Cómo obtengo el texto de un cuadro de texto durante onKeyPress?