Foros del Web » Programando para Internet » Javascript »

Marcado de checkBox con javascript

Estas en el tema de Marcado de checkBox con javascript en el foro de Javascript en Foros del Web. Hola, tengo un problemilla y quiero ver si me pueden ayudar. Necesito hacer el marcado de dos checkbox que están en grupos diferentes (los checkbox ...
  #1 (permalink)  
Antiguo 25/04/2008, 11:08
 
Fecha de Ingreso: mayo-2006
Mensajes: 58
Antigüedad: 18 años, 6 meses
Puntos: 0
Marcado de checkBox con javascript

Hola, tengo un problemilla y quiero ver si me pueden ayudar.

Necesito hacer el marcado de dos checkbox que están en grupos diferentes (los checkbox los tengo en php) puedo hacer que al seleccionar uno de los checkbox de un grupo se marquen o se desmarquen todos los checkbox del otro grupo, pero solo quiero que al marcar uno de los checkbox se marque el que está al lado de el, espero que me entiendan.

Si sirve de algo estas son las funciones de javascript que utilizo

Código:
function checkAll(field)
{
    if(!field.length)
        field.checked = true;
    for (i = 0; i < field.length; i++)
    	field[i].checked = true;
}

function uncheckAll(field)
{
    if(!field.length)
        field.checked = false;
    for (i = 0; i < field.length; i++)
    	field[i].checked = false;
}
y en php las invoco asi:
Código:
"<input id=rdc type=checkbox style='border:0' value='{rdc}' name='rdc[]' onClick='if (this.checked==true)checkAll(document.forma4.rdcCorre);else uncheckAll(document.forma4.rdcCorre);'>"
De antemano gracias y espero me puedan ayudar
  #2 (permalink)  
Antiguo 25/04/2008, 12:10
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Re: Marcado de checkBox con javascript

Primero ordenamos un poco

Código:
function checkAll(field)
{
    if(!field.length)
        field.checked = true;
    for (i = 0; i < field.length; i++)
    	field[i].checked = true;
}

function uncheckAll(field)
{
    if(!field.length)
        field.checked = false;
    for (i = 0; i < field.length; i++)
    	field[i].checked = false;
}

//Hasta aqui correcto

//Nueva funcion que te simplificara lo que le pones en el php

function checkOrUnchekAll(obj){
if (obj.checked==true) {
        checkAll(document.forma4.rdcCorre);
}else{
         uncheckAll(document.forma4.rdcCorre);
}
} 
Código:
"<input id=rdc type=checkbox 
        style='border:0' value='{rdc}' name='rdc[]'
        onClick='checkOrUnchekAll(this);'>"
Para desmarcar o marcar un checkbox concreto debes hacer que todos tengan un id distinto y luego usar una función como la siguiente:


Código:
function checkOrUnchekOne(obj,idcheckbox){
if (obj.checked==true){
        document.getElementById(idcheckbox).checked=true;
}else{
        document.getElementById(idcheckbox).checked=false;
}
}


Código:
"<input id=XY type=checkbox 
        style='border:0' value='{rdc}' name='rdc[]'
        onClick='checkOrUnchekOne(this,'XX');'>"
donde XX es idcheckbox, el id del checkbox a cambiar... obvimante a cada checkbox tines que decirle cual es su pareja...


Quim
  #3 (permalink)  
Antiguo 25/04/2008, 13:27
 
Fecha de Ingreso: mayo-2006
Mensajes: 58
Antigüedad: 18 años, 6 meses
Puntos: 0
Re: Marcado de checkBox con javascript

Solo una pregunta + como hago para asignarle pareja cuando no se cuantos checkbox voy a generar ya que se generan en base a un array?

Sigo probando mientras tanto...

Gracias
  #4 (permalink)  
Antiguo 26/04/2008, 12:09
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Re: Marcado de checkBox con javascript

Tendras que pensar una logica que te lo permita pero en eso no te puedo ayudar puesto que dependerá de tu "negocio".

Por ejemplo si el primer checkbox de un grupo esta ligado al primero de otro grupo ya tienes la logica a seguir

supongamos que $i es la variable que usas para recorrer el array

Código PHP:

echo "<input id='grupo1" $i "' type=checkbox 
        style='border:0' value='{rdc}' name='rdc[]'
        onClick=\"checkOrUnchekOne(this,'grupo2" 
$i "');\">" 
ya tenemos cada checkbox "$i" del grupo uno emparejado con el checkbox "$i" del grupo dos...

otra logica posible la pareja debe ser el checkbox siguiente

Código PHP:

$j
=$i+1;
echo 
"<input id='grupo1" $i "' type=checkbox 
        style='border:0' value='{rdc}' name='rdc[]'
        onClick=\"checkOrUnchekOne(this,'grupo1" 
$j "');\">" 
en esta el último no tendria pareja...

Quim
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 18:39.