Tengo 2 campos de entrada en cada lapso. cuando el primer lapso de la fila se llena con alguna fecha, el siguiente lapso debe ser visible.
<span name="datalist_2field" class="display_inline xyz"> <input type="text" class="datalist_2row_left" name="inputfield_smpc" value=""></input> <input type="text" class="datalist_2row_right" name="inputfield_evmpd" value=""></input> </span> <?PHP for ($i=1; $i<=10; $i++) { ?> <span name="datalist_2field" class="display_none xyz"> <input type="text" class="datalist_2row_left" name="inputfield_smpc" value=""></input> <input type="text" class="datalist_2row_right" name="inputfield_evmpd" value=""></input> </span> <?PHP } ?>jQuery:
$('input[name="inputfield_smpc"]').keyup(function(){ $(span.xyz).next().removeClass('display_none'); $(span.xyz).next().addClass("display_inline"); });Desafortunadamente no funciona. ¿Qué ocurre? ¡Gracias!
Recomendaría el evento change() en lugar de keyup(). La razón por la que no debe usar keyup() es porque si un usuario ingresa un valor usando autocompletar, no activará keyup(). Sin embargo, el autocompletado activa el evento change(), se ejecutará la secuencia de comandos de verificación y se verificará la entrada.
En cuanto a por qué no funciona, tienes
.removeClass('display_none')pero el elemento que intenta seleccionar no tiene un nombre de clase llamado 'display_none'
si intenta cambiar el css sin usar otra clase, puede usar algo como esto
.css("display", "block");display_none debe agregarse a la segunda entrada en lugar del intervalo según sus requisitos.
Ejemplo de código para su primer tramo: HTML
<span name="datalist_2field" class="display_inline xyz"> <input type="text" class="datalist_2row_left" name="inputfield_smpc" value=""></input> <input type="text" class="datalist_2row_right display_none" name="inputfield_evmpd" value=""></input> </span>jQuery
$('input[name="inputfield_smpc"]').keyup(function(){ $(this).next().removeClass('display_none'); $(this).next().addClass("display_inline"); });