Intentando hacer alguna validación de jQuery (sin el complemento, por favor, no responda como "Simplemente use el complemento validate-js").jQuery .keyPress() - ¿Cómo obtener el valor de la entrada que desencadenó el evento?
Estoy cableando un controlador de eventos del lado del cliente para cada keypress "campo requerido" en la lista doc:
$(document).ready(function() {
$('#myform input.required').each(function() {
$(this).keypress(onRequiredFieldKeyPress);
});
});
que dispara correctamente este evento en cada pulsación de tecla:
function onRequiredFieldKeyPress() {
if ($(this).val().trim() == '') {
$(this).next('em').html('*').show(); // show req field indicator
} else {
$(this).next('em').html('*').hide(); // hide req field indicator
}
}
Pero $ (this) .val() siempre es nulo/vacío. Parece que está pasando un "HTMLInputElement" que es lo que esperaría, pero es casi como si tuviera que proyecto esto en algún otro tipo jQuery?
Básicamente estoy tratando de hacer esto: en el evento de pulsación de tecla de cualquier campo que haya conectado (que son todos los elementos de entrada), llame a esa función. En esa función, si ese campo tiene un valor de '' (vacío), entonces muestra un campo oculto que muestra un indicador de campo requerido.
Realmente no me importa que elemento real disparó la tecla, ya que el comportamiento de mi lógica será el mismo. Solo necesito obtener el valor real.
¿Echo de falta algo?
Sí, eso fue todo. ¡Gracias! – RPM1984