Foros del Web » Programando para Internet » Javascript »

desactivar varios campos checked

Estas en el tema de desactivar varios campos checked en el foro de Javascript en Foros del Web. Hola muchachos tengo un campo tipo chekbox y quiero que al presionar se desactiven varios campos que están habilitados, solo me funciona con uno, que ...
  #1 (permalink)  
Antiguo 05/07/2011, 18:06
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 19 años, 3 meses
Puntos: 49
desactivar varios campos checked

Hola muchachos tengo un campo tipo chekbox y quiero que al presionar se desactiven varios campos que están habilitados, solo me funciona con uno, que tengo que hacer para agregarle mas campos?

Código Javascript:
Ver original
  1. <input type="checkbox" name="chek1" id="chek1" value="1" onclick="document.formulario_134up.nom1.disabled=!document.formulario_134up.nom1.disabled />

si agrego eso y en mi textbox tengo

<input type="text" name="nom1">

me funciona, ya que cuando activo la casilla se bloquea y viceversa, pero trate de agregarle mas campos y no me resulta, alguna idea, muchas gracias

Lo otro, se me ocurrio agregarle un confirm para ver si el usuario esta seguro de querer eliminar los datos, hago

Código HTML:
Ver original
  1. onclick="if(confirm('Se dispone a anular el registro\nEsta seguro(a) que desea continuar?') == false){return false;}else{document.formulario_134up.nom1.disabled=!document.formulario_134up.nom1.disabled}"

y me funciono, hago click y me pregunta, si confirmo aceptar bloquea de lo contrario no hace nada, pero cuando tengo bloqueado y pincho para desbloquear me vuelve a preguntar :/ alguna idea, Saludos
__________________
Gokuh Salvo al mundo. PUNTO!!!!

Última edición por kaninox; 05/07/2011 a las 18:18
  #2 (permalink)  
Antiguo 05/07/2011, 23:53
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 6 meses
Puntos: 834
Respuesta: desactivar varios campos checked

Una opción es colocar todos los elementos a deshabilitar dentro de otro que facilite su referenciación. Ejemplo:
Código PHP:
<!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>Documento sin título</title>
<
script type="text/javascript">
var 
DR=function(f){
    if(
document.addEventListener){
        var 
func=function(){f();document.removeEventListener('DOMContentLoaded',func,false);}
        
document.addEventListener('DOMContentLoaded',func,false);
    }else{
        function 
r(f){/in/.test(document.readyState)?setTimeout(function(){r(f);},9):f();};
        
r(f);
    }
};
function 
addEvent(obj,fun,type){ 
    if(
obj.addEventListener){ 
        
obj.addEventListener(type,fun,false); 
    }else if(
obj.attachEvent){ 
        var 
f=function(){ 
            
fun.call(obj,window.event); 
        } 
        
obj.attachEvent('on'+type,f); 
        
obj[fun.toString()+type]=f
    }else{ 
        
obj['on'+type]=fun
    } 
}  
function 
t(id){return document.getElementById(id);}
DR(
    function(){
        
ver();//ojo, acá this referencia a window
        
addEvent(t('pp'),ver,'click');//aquí, en cambio, this referencia al checkbox
    
}   
);
function 
ver(){
    var 
relacionados=t('camposrelacionados').getElementsByTagName('input'),l=relacionados.length,i=0;
    for(;
i<l;i++){
        
relacionados[i].disabled=!this.checked;    
    }
    
}
</script>
</head>

<body>
<form id="form1" name="form1" method="post" action="">
<input name="pp" id="pp" type="checkbox" value="1" />
<div id="camposrelacionados">
<input name="uno" type="text" /><br />
<input name="dos" type="text" /><br />
<input name="tres" type="text" />
</div>
<input name="otrocampo" type="text" />
</form>
</body>
</html> 

Última edición por Panino5001; 06/07/2011 a las 00:14
  #3 (permalink)  
Antiguo 06/07/2011, 04:09
 
Fecha de Ingreso: julio-2005
Mensajes: 204
Antigüedad: 19 años, 4 meses
Puntos: 1
Respuesta: desactivar varios campos checked

Yo lo haría así

Código PHP:
<input type="checkbox" id"algo" />Seleccionar
<input type="radio" name="algo1" value="Boca" disabled="disabled" />Boca
<input type="radio" name="algo1" value="River" disabled="disabled" />River 
[PHP]

var checkbox = document.getElementById("algo");
checkbox.onclick = activar;
function activar()
{
var radioButtons = document.getElementsByName("algo1");

var checkbox = document.getElementById("algo");

// Si el checkbox esta tildado se activan los radio y viceversa
if (checkbox.checked)
{ for (var i = 0; i < radioButtons.length; i++)
{
radioButtons[i].disabled = false;
};
}
else {
for (var i = 0; i < radioButtons.length; i++)
{
if(radioButtons[i].type=="radio")
radioButtons[i].disabled = true;
};
}
}
  #4 (permalink)  
Antiguo 06/07/2011, 09:03
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 19 años, 3 meses
Puntos: 49
Respuesta: desactivar varios campos checked

Panino5001, buena solucion pero yo estoy haciendo un llenado con una consulta seria trarme muchos scripts de esos por ello la simplicidad del otro :/ pero me sirve para darle una vuelta, lo mismo para elburdel tu script aunque esta enfocado solo para radiobuttoms me da una idea para implementarlo con demas campos.

saludos
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #5 (permalink)  
Antiguo 06/07/2011, 14:57
 
Fecha de Ingreso: julio-2005
Mensajes: 204
Antigüedad: 19 años, 4 meses
Puntos: 1
Respuesta: desactivar varios campos checked

Mostrame un ejemplo en html o en jpg asi entiendo donde lo queres aplicar

Etiquetas: campos, checkbox, checked, desactivar, formulario
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 19:26.