Foros del Web » Programando para Internet » Javascript »

Ayuda con los checkbox

Estas en el tema de Ayuda con los checkbox en el foro de Javascript en Foros del Web. Tengo los siguientes checkbox:: < input type="checkbox" name="Estrato[]" value="1"> <em>Estrato 1 <input type="checkbox" name="Estrato[]" value="2"> Estrato 2 <input type="checkbox" name="Estrato[]" value="3"> Estrato 3 <input type="checkbox" ...
  #1 (permalink)  
Antiguo 10/11/2003, 14:11
Avatar de edwinandlozano  
Fecha de Ingreso: octubre-2003
Mensajes: 272
Antigüedad: 21 años, 2 meses
Puntos: 0
Ayuda con los checkbox

Tengo los siguientes checkbox::

< input type="checkbox" name="Estrato[]" value="1">
<em>Estrato 1
<input type="checkbox" name="Estrato[]" value="2">
Estrato 2
<input type="checkbox" name="Estrato[]" value="3">
Estrato 3
<input type="checkbox" name="Estrato[]" value="4">
Estrato 4
<input type="checkbox" name="Estrato[]" value="5">
Estrato 5
<input type="checkbox" name="Estrato[]" value="6">
Estrato 6 </em></p>
<p><em>
<input type="checkbox" name="Estrato[]" value="0" onClick="SetCheckbox(this.checked)">
Todos los Estratos </em></p>

y esta es la funcion que inabilita las checkbox:

function SetCheckbox(checked) {

document.Adicionar_promocion.Estrato.disabled = checked;
document.Adicionar_promocion.Estrato.disabled = checked;
document.Adicionar_promocion.Estrato.disabled = checked;
document.Adicionar_promocion.Estrato.disabled = checked;
document.Adicionar_promocion.Estrato.disabled = checked;
document.Adicionar_promocion.Estrato.disabled = checked;
}

El problema es el siguiente:

Antes cada checkbox tenia un nombre diferente(es decir no pertenecian al mismo grupo) y el anterior codigo me servia para la hora de darle click al ultimo checkbox me desabilitara los demas, pero como necesito tener los checkbox en un mismo grupo y almacenarlos en un array(php), los pase de esta manera que les muestro y es logico que ahora ya no me funciona la funcion descrita arriba, he buscado la forma pero no he encontrado solucion....

Gracias por la ayuda que me puedan dar....
  #2 (permalink)  
Antiguo 10/11/2003, 14:20
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 10 meses
Puntos: 772
Hola, edwinandlozano.

Puedes meter los checkbox en un formulario:

<form name="frm">
<input type="checkbox...
</form>

Y poner la función de esta forma:

function SetCheckbox(checked) {
elem=frm.elements;
for(i=0;i<elem.length;i++)
elem[i].checked=checked;

Espero que te sirva. Saludos,
  #3 (permalink)  
Antiguo 10/11/2003, 16:51
Avatar de edwinandlozano  
Fecha de Ingreso: octubre-2003
Mensajes: 272
Antigüedad: 21 años, 2 meses
Puntos: 0
Hola JavierB

Gracias por la ayuda, te explico lo siguiente:

* No se si este diciendo mal, pero los checkbox ya estan en un formulario el cual se llama 'Adicionar_promocion', no se si lo que querias decirme era que los metiera en otro form, si era asi, creo que no podia hacerlo dado que estos elementos pertenecen a un formulario donde pregunto mas cosas, y luego las envio a un script donde hace sus respectivas operaciones (validar, insertar, etc).

Realice lo que me dijiste pero con esta pequeña variante:

function SetCheckbox(checked) {

for(i=5; i< 11; i++) {
Adicionar_promocion.elements[i].disabled = checked;
}
}

dado que con elements me desabilita todo, me toco saber cuales eran los que necesitaba que se desabilitaran.
Aunque soy nuevo en esto, creo que esto es una barrabasada, y que deberia de buscar otra forma.. pero por el momento lo dejo asi ya que no tengo tiempo.....

Si me pudiera dar una opinion y alguna otra forma de hacerlo.. te lo agradeceria.

Y de nuevo muchas gracias por la ayuda....:)
  #4 (permalink)  
Antiguo 11/11/2003, 02:27
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 10 meses
Puntos: 772
Hola de nuevo.

Si solo tienes que desactivar los checkbox puedes hacer lo siguiente:

for(i=5; i< 11; i++) {
if (Adicionar_promocion.elements[i].type='checkbox')
Adicionar_promocion.elements[i].disabled = checked;
}
}

Si tienes más checkbox que no quieres desactivar, habrá que pensar alguna otra cosa.

Saludos,
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:55.