¿Cómo obtener el texto de un cuadro de texto de entrada durante onKeyPress?

Estoy intentando obtener el texto en un cuadro de texto a medida que el usuario escribe en él (parque infantil jsfiddle):

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 elvalor delinput text caja, duranteonKeyPress siempre es el valorantes de el cambio:

Pregunta: ¿Cómo obtengo el texto de un cuadro de texto duranteonKeyPress?

Bonus Chatter

Hay tres eventos relacionados con"el usuario está escribiendo" en el DOM de HTML:

onKeyDownonKeyPressonKeyUp

EnWindows, el orden deWM_Key los mensajes se vuelven importantes cuando el usuario presiona una tecla, y la tecla comienza a repetirse:

WM_KEYDOWN('a') - El usuario ha presionado elA llaveWM_CHAR('a') - una personaje ha sido recibido del usuarioWM_CHAR('a') - una personaje ha sido recibido del usuarioWM_CHAR('a') - una personaje ha sido recibido del usuarioWM_CHAR('a') - una personaje ha sido recibido del usuarioWM_CHAR('a') - una personaje ha sido recibido del usuarioWM_KEYUP('a') - el usuario ha liberado elA llave

Resultará en cinco caracteres que aparecen en un control de texto:aaaaa

El punto importante es que la respuesta a laWM_CHAR Mensaje, el que repite. De lo contrario, se pierden eventos cuando se presiona una tecla.

EnHTML las cosas son ligeramente diferentes

onKeyDownonKeyPressonKeyDownonKeyPressonKeyDownonKeyPressonKeyDownonKeyPressonKeyDownonKeyPressonKeyUp

HTML entrega unaKeyDown yKeyPress Cada tecla se repite. Y elKeyUp El evento solo se genera cuando el usuario libera la tecla.

Llevar

I puede responder aonKeyDown oonKeyPress, pero ambos todavía se levantan antes de lainput.value Ha sido actualizadoNo puedo responder aonKeyUp, porque no sucede cuando el texto en el cuadro de texto cambia.

Pregunta: ¿Cómo obtengo el texto de un cuadro de texto duranteonKeyPress?

Lectura de bonosObtener un valor de formulario con jQueryObtener el valor en un cuadro de texto de entrada

Respuestas a la pregunta(11)

Su respuesta a la pregunta