Foros del Web » Programando para Internet » Javascript »

activar todos los checkbox

Estas en el tema de activar todos los checkbox en el foro de Javascript en Foros del Web. Hola, estoy teniendo un problema, verán, tengo un formulario con varias filas, las cuales tienen un checkbox y un input oculto, para meter numeros, q ...
  #1 (permalink)  
Antiguo 22/03/2013, 10:05
 
Fecha de Ingreso: enero-2013
Mensajes: 57
Antigüedad: 6 años, 10 meses
Puntos: 1
activar todos los checkbox

Hola, estoy teniendo un problema, verán, tengo un formulario con varias filas, las cuales tienen un checkbox y un input oculto, para meter numeros, q al hacer click en el checkbox de la fila X, me aparecera el input de la fila X, todos estos inputs, tienen el "name" de la forma:
name="CANTIDAD<? echo $record->getRecordId(); ?>"
hasta alli todo funciona, bien el problema está en que quiero que al ahcer un click en un checkbox que diga, marcar todos, o desmarcar todos, me active todos los checkbox y a la vez, me muestre todos los inputs, o que los oculte, dependiendo que haga.

Bueno, he logrado hacer que me active todos los checkbox, pero nose como lograr que me active todos los inputs.

Código Javascript:
Ver original
  1. function seleccionar_todo(){
  2.                 for (i=0;i<document.check_box.elements.length;i++)
  3.                     if(document.check_box.elements[i].type == "checkbox")  
  4.                         document.check_box.elements[i].checked=1
  5.             }
  6.    
  7.             function deseleccionar_todo(){
  8.                 for (i=0;i<document.check_box.elements.length;i++)
  9.                     if(document.check_box.elements[i].type == "checkbox")  
  10.                         document.check_box.elements[i].checked=0
  11.             }
  12.  
  13. function mostrar_ocultar(nombreCapa){
  14.                 if(document.getElementById(nombreCapa).style.display == "block")
  15.                     document.getElementById(nombreCapa).style.display= "none";
  16.                 else
  17.                     document.getElementById(nombreCapa).style.display= "block";
  18.             }

Código PHP:
Ver original
  1. <a href="javascript:seleccionar_todo()">Marcar todos</a>|<a href="javascript:deseleccionar_todo()">Marcar ninguno</a>
  2.  
  3. foreach($records as $record){
  4.                     echo "<tr><td>".$row."</td><td>".$record->getField('CODIGO')."</td><td>".$record->getField('DESCRIPCION')."</td>";
  5.                         <td>
  6.                             <input type="checkbox"   onclick="mostrar_ocultar('CANTIDAD<? echo $record->getRecordId(); ?>');" style='cursor: hand; cursor: pointer;'>
  7.                         </td>                      
  8.                         <td>
  9.                         <input type="text" id="CANTIDAD<? echo $record->getRecordId(); ?>"  style="display:none" size="1" name="CANTIDAD<? echo $record->getRecordId(); ?>" ></input>
  10. <?php                       </td></tr>
  11.             $row++;
  12.         }
  13. ?>
  #2 (permalink)  
Antiguo 22/03/2013, 16:27
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 17 años
Puntos: 16
Respuesta: activar todos los checkbox

Si te fijas la función para mostrar/ocultar la llamas con el evento onClick del checkbox por lo cual se llama SOLO cuando éste es clickeado.

Ahora lo que tu pones está bien sólo que te falta "simular" el evento, es decir como le asignas mediante JS el cheked te saltas el evento onclick, así que puedes solucionarlo haciendo la llamada a la función muestra/oculta junto con activar el selected de cada checkbox, algo así:

Código Javascript:
Ver original
  1. function seleccionar_todo(){
  2.     for (i=0;i<document.check_box.elements.length;i++)
  3.         if(document.check_box.elements[i].type == "checkbox") {  
  4.             document.check_box.elements[i].checked=1;
  5.             mostrar_ocultar("CANTIDAD" + i);
  6.         }
  7. }
  8.    
  9. function deseleccionar_todo(){
  10.     for (i=0;i<document.check_box.elements.length;i++)
  11.         if(document.check_box.elements[i].type == "checkbox") {
  12.             document.check_box.elements[i].checked=0;
  13.             mostrar_ocultar("CANTIDAD" + i);
  14.         }
  15. }

Saludos
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!

Etiquetas: checkbox, formulario, funcion, input, php
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 22:54.