Foros del Web » Programando para Internet » Javascript »

Marcar todos

Estas en el tema de Marcar todos en el foro de Javascript en Foros del Web. Hace un tiempo pedí una función en javascript para marcar varios checkboxes de un formulario con un solo click, pues bien, ahora necesito esa misma ...
  #1 (permalink)  
Antiguo 23/03/2005, 12:08
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 20 años, 9 meses
Puntos: 0
Marcar todos

Hace un tiempo pedí una función en javascript para marcar varios checkboxes de un formulario con un solo click, pues bien, ahora necesito esa misma función pero que funcione cuando la insertamos en un tabla html. La función es esta:

<script>
function marcar(obj,chk){
elem=obj.getElementsByTagName('input');
for(i=0;i<elem.length;i++)
elem[i].checked=chk.checked;
}

Y el formulario este:

<form method="post" action="#">
Marcar<input type="checkbox" onclick="marcar(this.parentNode,this)"></input><br><br>
<input type="checkbox"></input><br>
<input type="checkbox"></input><br>
<input type="checkbox"></input><br>
<input type="checkbox"></input><br>
<input type="checkbox"></input>
</form>

Pero si trato de meter el formulario en una tabla html deja de funcionar:

<table align="center" border="0">
<form method="post" action="#">
<tr><th>Marcar<input type="checkbox" onclick="marcar(this.parentNode,this)"></input></th></tr>
<tr><td><input type="checkbox"></input></td></tr>
<tr><td><input type="checkbox"></input></td></tr>
<tr><td><input type="checkbox"></input></td></tr>
<tr><td><input type="checkbox"></input></td></tr>
<tr><td><input type="checkbox"></input></td></tr>
</form>
</table>

He probado de diferentes maneras pero no funciona...

Alguien sabe cómo puedo hacerlo?

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
  #2 (permalink)  
Antiguo 23/03/2005, 12:23
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
cambia:

this.parentNode

por:

this.form
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #3 (permalink)  
Antiguo 23/03/2005, 17:08
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 20 años, 9 meses
Puntos: 0
Lo voy a probar haber si va.

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
  #4 (permalink)  
Antiguo 23/03/2005, 19:14
 
Fecha de Ingreso: febrero-2005
Mensajes: 670
Antigüedad: 19 años, 2 meses
Puntos: 0
De paso:

Código HTML:
<table align="center" border="0">
<form method="post" action="#">
<tr><th>Marcar<input type="checkbox" onclick="marcar(this.form,this)"></input></th></tr>
<tr><td><input type="checkbox"></input></td></tr>
<tr><td><input type="checkbox"></input></td></tr>
<tr><td><input type="checkbox"></input></td></tr>
<tr><td><input type="checkbox"></input></td></tr>
<tr><td><input type="checkbox"></input></td></tr>
</form>
</table> 
Dentro de <table> sólo pueden haber celdas. La forma correcta de hacerlo sería:

Código HTML:
<form method="post" action="#">
<table align="center" border="0">
<tr><th>Marcar<input type="checkbox" onclick="marcar(this.form,this)"></input></th></tr>
<tr><td><input type="checkbox"></input></td></tr>
<tr><td><input type="checkbox"></input></td></tr>
<tr><td><input type="checkbox"></input></td></tr>
<tr><td><input type="checkbox"></input></td></tr>
<tr><td><input type="checkbox"></input></td></tr>
</table>
</form> 
Suerte!
Fede
__________________
Federico H. García
Desarrollo Web
www.federicog.com.ar
  #5 (permalink)  
Antiguo 27/03/2005, 05:15
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 20 años, 9 meses
Puntos: 0
Gracias a los dos. Funciona correctamente.

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
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 11:53.