Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Display div fila tabla al seleccionar check

Estas en el tema de Display div fila tabla al seleccionar check en el foro de Javascript en Foros del Web. Hola, tengo el siguiente codigo y la funcion en javascript para mostrar el div "fecha-prevista". Hay un check en cada fila de una tabla y ...
  #1 (permalink)  
Antiguo 11/12/2014, 06:57
 
Fecha de Ingreso: octubre-2011
Mensajes: 206
Antigüedad: 13 años
Puntos: 1
Display div fila tabla al seleccionar check

Hola,

tengo el siguiente codigo y la funcion en javascript para mostrar el div "fecha-prevista". Hay un check en cada fila de una tabla y se debería mostrar el div en la misma fila (debajo del chheck) pero con el codigo siguente solo se muestra-oculta el div de la primera fila. Agradecería ayuda...llevo un tiempo dandole vueltas.

Código PHP:
<input id="check-fecha" type="checkbox" onclick=toggle();></input>
<
input id="fecha-prevista" class="fecha-prevista"></input
Código PHP:
function toggle() {
if (
document.getElementById) {
if (
document.getElementById("check-fecha").checked == true) {
document.getElementById("fecha-prevista").style.display "block";
} else {
document.getElementById("fecha-prevista").style.display "none";
}}} 
Gracias. Un saludo
  #2 (permalink)  
Antiguo 11/12/2014, 07:12
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: Display diw fila tabla al seleccionar check

no puedes duplicar las ids.
como verás he realizado algunos cambios, incluso en el html
Cita:
<input type="checkbox" onclick='toggle(this, this.nextElementSibling)' />
<input class="fecha-prevista" />

<script type="text/javascript">
function toggle(este, nxt) {
nxt.style.display = este ? "inline" : 'none';
}
</script>
si quieres compatibilidad con navegadores antiguos, lee esto
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #3 (permalink)  
Antiguo 11/12/2014, 08:46
 
Fecha de Ingreso: octubre-2011
Mensajes: 206
Antigüedad: 13 años
Puntos: 1
Respuesta: Display diw fila tabla al seleccionar check

Hola,

gracias por la respuesta pero no lo entiendo muy bien.

Esta el checkbox que tiene este id="check-fecha" y esta el input que se tiene que visualizar al clicar en el check que tiene este id="fecha-prevista". Con el codigo que puse en el primer post se hace visible el input solo en la primera fila.

En el codigo que ha indicado que quiere decir con "este"? No lo entiendo

Código PHP:
function toggle(estenxt) {
nxt.style.display =este "inline" 'none';

Gracias por la contestación.

Un saludo
  #4 (permalink)  
Antiguo 11/12/2014, 09:06
 
Fecha de Ingreso: octubre-2011
Mensajes: 206
Antigüedad: 13 años
Puntos: 1
Respuesta: Display diw fila tabla al seleccionar check

ok, perdona no había usado esta función "this.nextElementSibling" y no puede usarla en este caso. Es una tabla en la que cada fila tiene dos rowspan. El checkbox esta en la parte de arriba y la idea es que al checkear se haga visible el input en la parte de abajo.

El codigo html es algo similar a esto, la ultima columna es la que aparece el desplegable.

Código PHP:
<table>
<
body>
<
tr>
<
td><input 1.1></td>
<
td><input 1.2></td>
<
td><input 1.3></td>
<
td><input id="check-fecha" type="checkbox"></td>
</
tr>


<
tr>
<
td><input 2.1></td>
<
td><input 2.2></td>
<
td><input 2.3></td>
<
td><input id="fecha-prevista"></td>
</
tr>

</
body>
</
table
Un saldo
  #5 (permalink)  
Antiguo 11/12/2014, 10:00
 
Fecha de Ingreso: diciembre-2014
Mensajes: 27
Antigüedad: 9 años, 11 meses
Puntos: 4
Respuesta: Display diw fila tabla al seleccionar check

Creo que no te estas explicando bien ya que en el primer comentario has dicho que hay un div con id="fecha-prevista" y luego resulta ser un input, tambien dices que hay un checkbox en cada fila de la tabla y quieres que se muestre el input id="fecha-prevista" en la misma fila...
Un caos, explicate mejor, si lo que quieres es que aparezca cuando el checkbox esta check es tan facil como:

Código:
if  (!document.getElementById('check-fecha').checked)  {
document.getElementById('fecha-prevista').style.display = 'none';
}
  #6 (permalink)  
Antiguo 11/12/2014, 10:47
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: Display diw fila tabla al seleccionar check

El equivalente es this.checked

Te comenté que no puedes duplicar las id, por ello has usar clases y hacer referencia a los elementos con queryselectorall
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #7 (permalink)  
Antiguo 11/12/2014, 11:31
 
Fecha de Ingreso: octubre-2011
Mensajes: 206
Antigüedad: 13 años
Puntos: 1
Respuesta: Display diw fila tabla al seleccionar check

Es cierto, disculpa. Creo que es mas sencillo con una imagen (link). Solo consigo mostrar el input en la primera fila.

http://imageshack.com/a/img901/5760/WzkhYD.jpg

Un saludo
  #8 (permalink)  
Antiguo 12/12/2014, 06:53
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: Display diw fila tabla al seleccionar check

como has cambiado varias veces, supongo que el layout es este. en lugar de usar id se usa class
Cita:
<table>
<tr>
<td><input 1.1></td>
<td><input 1.2></td>
<td><input 1.3></td>
<td><input class="check-fecha" type="checkbox"></td>
<td><input class="fecha-prevista"></td>
</tr>


<tr>
<td><input 2.1></td>
<td><input 2.2></td>
<td><input 2.3></td>
<td><input class="check-fecha" type="checkbox"></td>
<td><input class="fecha-prevista"></td>
</tr>
</table>
y este sería el javascript
Cita:
[].forEach.call(document.querySelectorAll('.check-fecha'), function(elem, i) {
elem.addEventListener('click', function() {toggle(this.checked, i)}, false);
})

function toggle(este, i) {
document.querySelectorAll('.fecha-prevista')[i].style.display = este ? "inline" : 'none';
}
si quieres que sea compatible con ie8-, habría que hacer algunos cambios
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #9 (permalink)  
Antiguo 12/12/2014, 09:08
 
Fecha de Ingreso: octubre-2011
Mensajes: 206
Antigüedad: 13 años
Puntos: 1
Respuesta: Display diw fila tabla al seleccionar check

Muchas gracias maquina!!

Etiquetas: display, fila, funcion, input, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:28.