Foros del Web » Programando para Internet » Javascript »

Seleccionar/Deseleccionar checkbox con un click y bloquear otros checkbox

Estas en el tema de Seleccionar/Deseleccionar checkbox con un click y bloquear otros checkbox en el foro de Javascript en Foros del Web. Antes de empezar aclaro que ya hay muchos temas sobre "cómo seleccionar todos los checkbox de un formulario", pero este tema incluye otras dudas que ...
  #1 (permalink)  
Antiguo 13/06/2011, 20:29
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 14 años, 1 mes
Puntos: 0
Seleccionar/Deseleccionar checkbox con un click y bloquear otros checkbox

Antes de empezar aclaro que ya hay muchos temas sobre "cómo seleccionar todos los checkbox de un formulario", pero este tema incluye otras dudas que no he visto en esos temas y me gustaría me ayudaran.

Necesito que la dar click en un checkbox se seleccionen sólo unos cuantos checkbox's y no todos los del formulario; que se bloqueén todos esos selccionados (disabled) exepto el que selecciona a todos. Y que con ese mismo checkbox que marcó todas las casillas al dar click de nuevo se deseleccionen y se activen todoas los checkbox's de nuevo; ya que en los temas que he visto se selecciona y deselecciona con dos botones distintos.
¿cómo puedo hacer una función para esto?
Gracias y un saludo :)

Última edición por Geze; 13/06/2011 a las 20:36
  #2 (permalink)  
Antiguo 14/06/2011, 01:50
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Seleccionar/Deseleccionar checkbox con un click y bloquear otros checkbox

Si tienes las funciones que dices, digamos seleccionarTodos() y desSeleccionarTodos() y funcionan asociadas a dos botones, debes tomarlas de ejemplo y asociaciarlas al checkbox pero con un condicional que ejecute una u otra en funcion de si el checkbox esta o no seleccionado.
Código HTML:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <title>Documento sin t&iacute;tulo</title>
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  4. <script language="JavaScript" type="text/JavaScript">
  5. function selODessel(obj){
  6. if(obj.checked){
  7.     seleccionarTodos();
  8. }else{
  9.     desSeleccionarTodos();
  10. }
  11. }
  12.  
  13. function seleccionarTodos(){
  14. alert("Selecciono todos")
  15. }
  16. function desSeleccionarTodos(){
  17. alert("Desselecciono todos")
  18. }
  19.  
  20. </head>
  21. <input name="chec" type="checkbox" value="" onClick="selODessel(this)" >
  22. </body>
  23. </html>

como puedes ver un mismo objeto ejecuta una u otra funcion en funcion de su estado.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 14/06/2011 a las 01:55
  #3 (permalink)  
Antiguo 14/06/2011, 10:21
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Seleccionar/Deseleccionar checkbox con un click y bloquear otros checkbox

Disculpa, no entendí, ¿podrías colocarlo en un ejemplo? Por favor; aún soy nuevo en JS
  #4 (permalink)  
Antiguo 14/06/2011, 13:31
 
Fecha de Ingreso: junio-2011
Ubicación: venezuela
Mensajes: 25
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Seleccionar/Deseleccionar checkbox con un click y bloquear otros checkbox

mira tengo este ejemplo que hice hace un tiempo no se sio te sirva cual quier cosa me comentas.
<input type="radio" name="discapacidad" value="Discapacidad Total" id="discapacidad_0" onclick="makeEnable3 ()"/>

function makeEnable3 (){
var a=document.getElementById ( "baston_0" )
a.disabled= false
var b=document.getElementById ( "baston_1" )
b.disabled= false
var c=document.getElementById ( "lentes_0" )
c.disabled= true
c.checked=false
var d=document.getElementById ( "lentes_1" )
d.disabled= true
d.checked=false

}
con ese codigo activo y desactivo otros radio, checked es para seleccionarlos o viceversa
  #5 (permalink)  
Antiguo 14/06/2011, 20:04
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Seleccionar/Deseleccionar checkbox con un click y bloquear otros checkbox

Gracias, tu código me ha dado una idea que no funciona muy bien, pero tiene la idea. Necesito que al dar click en el primer checkbox los otros se bloqueen y al volver a dar click se desbloqueen y se desmarque el primer checkbox

Código:
function marca(c1,c2,c3)
   {
	var c1=document.getElementById(c1);
	var c2=document.getElementById(c2);
	var c3=document.getElementById(c3);
	 if(c1.checked==false)
	 {
	   c1.checked=true;
	   c2.disabled=true;
	   c3.disabled=true;
     }
     else
     {
	   c1.checked=false;
     }
   }

Código HTML:
<input type='checkbox' id='c1' onClick='javascript:marcar("c1","c2","c3");'>Todos los valores<br>
<input type='checkbox' id='c2'> Segundo valor<br>
<input type='checkbox' id='c3'>Tercer valor
  #6 (permalink)  
Antiguo 15/06/2011, 14:15
 
Fecha de Ingreso: junio-2011
Ubicación: venezuela
Mensajes: 25
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Seleccionar/Deseleccionar checkbox con un click y bloquear otros checkbox

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="">
<label> Vives con tu Familia<br />
</label>
<p>
<label>
<input type="radio" name="RadioGroup1" value="1" id="RadioGroup1_0" onclick="Si()"/>
si</label>
<br />
<label>
<input type="radio" name="RadioGroup1" value="2" id="RadioGroup1_1" onclick="No()"/>
no</label>
<br />
<br />
</p>
<label></label>
<p>
<label>Mama
<input type="radio" name="mama" id="mama" disabled="disabled"/>
</label>
<label>
<input type="radio" name="amigos" id="amigos" disabled="disabled"/>
amigos</label>
</p>
<p>papa
<label>
<input type="radio" name="papa" id="papa" disabled="disabled"/>
</label>
<label>
<input type="radio" name="otros" id="otros" disabled="disabled"/>
otros</label>
</p>
<p>Hijos
<label>
<input type="radio" name="hijos" id="hijos" disabled="disabled"/>
</label>
</p>
<p>
<label>
<input type="submit" name="button" id="button" value="Submit" />
</label>
</p>
</form>
</body>
</html>
<script>
var m=document.getElementById ( "mama" )
var p=document.getElementById ( "papa" )
var h=document.getElementById ( "hijos" )
var a=document.getElementById ( "amigos" )
var o=document.getElementById ( "otros" )
function Si()
{
m.disabled= false
p.disabled= false
h.disabled= false
a.disabled= true
o.disabled= true
a.checked=false
o.checked=false

}
function No()
{
m.disabled= true
p.disabled= true
h.disabled= true
a.disabled= false
o.disabled= false
m.checked=false
p.checked=false
h.checked=false

}
</script>
este codigo hace mas o menos lo que quieres, al seleccionar si se activan mama, papa, hijos y al dar no se activan amigos otros, espero que te ayude exitos cvualquier cosa me comentas a mi correo [email protected] y te ayudo .
  #7 (permalink)  
Antiguo 15/06/2011, 14:18
 
Fecha de Ingreso: junio-2011
Ubicación: venezuela
Mensajes: 25
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Seleccionar/Deseleccionar checkbox con un click y bloquear otros checkbox

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="">
<label> Vives con tu Familia<br />
</label>
<p>
<label>
<input type="checkbox" name="RadioGroup1" value="1" id="si" onclick="Si()"/>
si</label>
<br />
<label>
<input type="checkbox" name="RadioGroup1" value="2" id="no" onclick="No()"/>
no</label>
<br />
<br />
</p>
<label></label>
<p>
<label>Mama
<input type="checkbox" name="mama" id="mama" disabled="disabled"/>
</label>
<label>
<input type="checkbox" name="amigos" id="amigos" disabled="disabled"/>
amigos</label>
</p>
<p>papa
<label>
<input type="checkbox" name="papa" id="papa" disabled="disabled"/>
</label>
<label>
<input type="checkbox" name="otros" id="otros" disabled="disabled"/>
otros</label>
</p>
<p>Hijos
<label>
<input type="checkbox" name="hijos" id="hijos" disabled="disabled"/>
</label>
</p>
<p>
<label
</label>
</p>
</form>
</body>
</html>
<script>
var si=document.getElementById ( "si" )
var no=document.getElementById ( "no" )
var m=document.getElementById ( "mama" )
var p=document.getElementById ( "papa" )
var h=document.getElementById ( "hijos" )
var a=document.getElementById ( "amigos" )
var o=document.getElementById ( "otros" )
function Si()
{
m.disabled= false
p.disabled= false
h.disabled= false
a.disabled= true
o.disabled= true
a.checked=false
o.checked=false
no.checked=false

}
function No()
{
m.disabled= true
p.disabled= true
h.disabled= true
a.disabled= false
o.disabled= false
m.checked=false
p.checked=false
h.checked=false
si.checked=false
}
</script>
y este Ejemplo es con check como quieres. suerte.
  #8 (permalink)  
Antiguo 23/06/2011, 16:56
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Seleccionar/Deseleccionar checkbox con un click y bloquear otros checkbox

Está bueno ese código, pero no es como lo busco. Lo voy a escribir en pseudocódigo:

Cita:
SI (checkbox que marca todos está desactivado)
ENTONCES:
-selecciona todos todos los checkbox y ponlos en disabled, exepto el checkbox que marca todos
SINO
ENTONCES:
-deselecciona todos los checkbox, tambien el que marca todos y ponlos en enabled
Como ven todo funciona con un sólo checkbox, no con dos, además de que el que selecciona nunca se bloquea, todos los demás sí.
Eso es más o menos loq ue necesito hacer, necesito su ayuda, gracias!

Etiquetas: bloquear, checkbox
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 00:11.