Foros del Web » Programando para Internet » Javascript »

Habilitar y desabilitar <selects> segun lo que se escoge

Estas en el tema de Habilitar y desabilitar <selects> segun lo que se escoge en el foro de Javascript en Foros del Web. Hola a todos. Encontre este script y pense en desabilitar los selects 2, 3 y 4 al momento de cargar la pagina. Luego, que al ...
  #1 (permalink)  
Antiguo 04/11/2008, 15:01
Avatar de Camarex  
Fecha de Ingreso: enero-2003
Ubicación: Monterrey NL
Mensajes: 148
Antigüedad: 21 años, 3 meses
Puntos: 0
Pregunta Habilitar y desabilitar <selects> segun lo que se escoge

Hola a todos. Encontre este script y pense en desabilitar los selects 2, 3 y 4 al momento de cargar la pagina.

Luego, que al elegir la categoria, se habilite el siguiente select, y al elegir una subcategoria, que se habilite el siguiente select en caso de existir. Hasta ahi estoy bien. le puse la siguiente linea:

son.options.disabled=false

Lo que no se es como volverlos a desabilitar en caso de cambiar de opinion y escoger otra categoria en el primer select.

ojala algun experto en javascript me eche una manita. Pongo el codigo que tengo. Gracias.

Código PHP:
<html>
<
head><title>Seleccion</title>
<
script language="JavaScript" type="text/javascript">
<!--
// primer combo box

    
data_1 = new Option("1""$");
    
data_2 = new Option("2""$$");

// segundo combo box

    
data_1_1 = new Option("11""-");
    
data_1_2 = new Option("12""-");
    
data_2_1 = new Option("21""--");
    
data_2_2 = new Option("22""--");
    
data_2_3 = new Option("23""--");
    
data_2_4 = new Option("24""--");
    
data_2_5 = new Option("25""--");


// tercer combo box

    
data_1_1_1 = new Option("111""*");
    
data_1_1_2 = new Option("112""*");
    
data_1_1_3 = new Option("113""*");
    
data_1_2_1 = new Option("121""*");
    
data_1_2_2 = new Option("122""*");
    
data_1_2_3 = new Option("123""*");
    
data_1_2_4 = new Option("124""*");
    
data_2_1_1 = new Option("211""**");
    
data_2_1_2 = new Option("212""**");
    
data_2_2_1 = new Option("221""**");
    
data_2_2_2 = new Option("222""**");
    
data_2_3_1 = new Option("231""***");
    
data_2_3_2 = new Option("232""***");

// cuarto combo box

    
data_2_2_1_1 = new Option("2211","%")
    
data_2_2_1_2 = new Option("2212","%%")

// otros parametros

    
displaywhenempty="vacio"
    
valuewhenempty=-1

    displaywhennotempty
="-Elegir Subcategoria-"
    
valuewhennotempty=0


function change(currentbox) {
    
numb currentbox.id.split("_");
    
currentbox numb[1];

    
i=parseInt(currentbox)+1

//Vacio todas las combo box siguiendo a la actual

    
while ((eval("typeof(document.getElementById(\"combo_"+i+"\"))!='undefined'")) &&
           (
document.getElementById("combo_"+i)!=null)) {
         
son document.getElementById("combo_"+i);
         
// Vacio todas las opciones excepto la primera ( No esta permitido  )
         
for (m=son.options.length-1;m>0;m--) son.options[m]=null;
         
// Reseteo la primera opcion
         
son.options[0]=new Option(displaywhenempty,valuewhenempty)
         
i=i+1
    
}


// Ahora creo una  string de nombre "base" (  "stringa" ), ejemplo. "data_1_0"
// a la cual aregare _0,_1,_2,_3 etc para obtener el nombre del combo box para llenarlo

    
stringa='data'
    
i=0
    
while ((eval("typeof(document.getElementById(\"combo_"+i+"\"))!='undefined'")) &&
           (
document.getElementById("combo_"+i)!=null)) {
           eval(
"stringa=stringa+'_'+document.getElementById(\"combo_"+i+"\").selectedIndex")
           
           if (
i==currentbox) break;
           
           
i=i+1
           
    
}


// Llenando el combo "Hijo" ( son  )  en caso de que este exista.

    
following=parseInt(currentbox)+1

    
if ((eval("typeof(document.getElementById(\"combo_"+following+"\"))!='undefined'")) &&
       (
document.getElementById("combo_"+following)!=null)) {
       
son document.getElementById("combo_"+following);
       
stringa=stringa+"_"
       
i=0
       
       
while ((eval("typeof("+stringa+i+")!='undefined'")) || (i==0)) {

       
// Si no hay opciones, vacio la primera opcion del combo " Hijo " (  son  )
       // De lo contrario, pongo el mensaje "- seleccionar -"
            
             
if ((i==0) && eval("typeof("+stringa+"0)=='undefined'"))
                 if (eval(
"typeof("+stringa+"1)=='undefined'"))
                    eval(
"son.options[0]=new Option(displaywhenempty,valuewhenempty)")
                 
                 else
                 eval(
"son.options[0]=new Option(displaywhennotempty,valuewhennotempty)")

          else
              eval(
"son.options["+i+"]=new Option("+stringa+i+".text,"+stringa+i+".value)")
            
son.options.disabled=false  
          i
=i+1
          
       

       
//son.focus()
       
i=1
       combostatus
=''
       
cstatus=stringa.split("_")
       while (
cstatus[i]!=null) {
       
       
          
combostatus=combostatus+cstatus[i]
          
i=i+1
          
          
}
       return 
combostatus;
       
    }
    
}

// -->
</script>

</head>
<body>
<table align="center">
<form name="f1" method="post" action="verificar.php">

<select name="combo0" id="combo_0" onChange="change(this);"  style="width:250px;">
    <option value="value1">-Elegir Categoria-</option>
    <option value="value2">1</option>
    <option value="value3">2</option>
</select>
<br />
<select name="combo1" id="combo_1" onChange="change(this)" style="width:250px;" disabled>
    <option value="value1">  </option>
</select>
<br />
<select name="combo2" id="combo_2" onChange="change(this);" style="width:250px;" disabled>
    <option value="value1">  </option>
</select>
<br />
<select name="combo3" id="combo_3" onChange="change(this);" style="width:250px;" disabled>
    <option value="value1">  </option>

</select>
<p align="center"><input type="submit" value="Continuar"></p>
</form>
</table>
</body>
</html> 
__________________
Si el empleo fuera como rentar una casa, entonces no rentes para siempre y busca la manera de Comprar. ;-)
Frase: Edgar Camarena
  #2 (permalink)  
Antiguo 04/11/2008, 15:22
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Habilitar y desabilitar <selects> segun lo que se escoge

Poniendo disabled = true ya vuelves a deshabilitar el elemento.

Saludos .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 04/11/2008, 15:28
Avatar de Camarex  
Fecha de Ingreso: enero-2003
Ubicación: Monterrey NL
Mensajes: 148
Antigüedad: 21 años, 3 meses
Puntos: 0
Respuesta: Habilitar y desabilitar <selects> segun lo que se escoge

Bueno, en realidad al cargar la pagina estan desabilitados.
Código PHP:
<select name="combo1" id="combo_1" onChange="change(this)" style="width:250px;" disabled
y conforme seleccionas se van desabilitando con esta linea que le puse:

Código PHP:
son.options.disabled=false 
Lo que entiendo es que para volverlos a desactivar en caso de cambiar la categoria del primer select tendria que poner

Código PHP:
son.options.disabled=true 
Pero no se en que parte del codigo se pone. Gracias.
__________________
Si el empleo fuera como rentar una casa, entonces no rentes para siempre y busca la manera de Comprar. ;-)
Frase: Edgar Camarena
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 20:26.