Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Habilitar/deshabilitar select

Estas en el tema de Habilitar/deshabilitar select en el foro de Javascript en Foros del Web. Buenas tardes muchachos. Tengo un select que habilita o deshabilita tres select de acuerdo a la opcion que elija el usuario. En este caso si ...
  #1 (permalink)  
Antiguo 10/01/2014, 16:31
 
Fecha de Ingreso: septiembre-2013
Ubicación: Bogota
Mensajes: 139
Antigüedad: 10 años, 7 meses
Puntos: 0
Habilitar/deshabilitar select

Buenas tardes muchachos. Tengo un select que habilita o deshabilita tres select de acuerdo a la opcion que elija el usuario. En este caso si el usuario elije 'Si' se habilita el el primer y segundo select y el tercero queda deshabilitado. Si el usuario elije 'No' se habilita el tercero y el primero y segundo se deshabilitan. El problema es que cuando el usuario vuelve a seleccionar el select en value="0" no se deshabilitan todos de nuevo si no unicamente el primero y el segundo. Pero la idea es que es que se deshabiliten los tres. ¿alguien puede notar que estoy haciendo mal?

Código HTML:
 <script>
		function habilitar(value)
		{
			if(value=="Si" || value==true)
			{
				// habilitamos
				document.getElementById("cod_program_est").disabled=false;
				document.getElementById("cod_ins").disabled=false;
				document.getElementById("cod_anio_aprob").disabled=true;
			}else if(value=="No" || value==false){
				// deshabilitamos
				document.getElementById("cod_program_est").disabled=true;
				document.getElementById("cod_ins").disabled=true;
				document.getElementById("cod_anio_aprob").disabled=false;
				}
			}
	</script> 

Código PHP:
<td>* ¿Estudia actualmente?: 
<select name="estudia_act_cab" id="estudia_act_cab" onchange="habilitar(this.value);">
    <option value="0">Seleccione...</option> 
    <option value="Si">Si</option>
    <option value="No">No</option>
    </select></td>
<td>Entidad educativa:     
                <select disabled name='cod_program_est' id="cod_program_est">
                <option value="0"selected></option>
                <?
                $sql3 
"select * from program_est";
                
$result3 mysql_query ($sql3$link);
                while (
$row mysql_fetch_array ($result3)) {
                
$mcodpr $row['cod_program_est'];
                
$mprog $row['dtalle_program_est'];
                if (
$pro == $mcodas)
                echo 
"<option value= '$mcodpr'> $mprog </option>";
                else
                echo 
"<option value= '$mcodpr'> $mprog</option>";
                }
                echo 
"</option>";
                
?>
                </select></td>
</tr>

<tr>
<td>* Tipo de institucion actual:
                <select disabled name='cod_ins' id="cod_ins">
                <option value="0"selected></option>
                <?
                $sql3 
"select * from institucion";
                
$result3 mysql_query ($sql3$link);
                while (
$row mysql_fetch_array ($result3)) {
                
$mcodpr $row['cod_ins'];
                
$mprog $row['dtalle_ins'];
                if (
$pro == $mcodas)
                echo 
"<option value= '$mcodpr'> $mprog </option>";
                else
                echo 
"<option value= '$mcodpr'> $mprog</option>";
                }
                echo 
"</option>";
                
?>
                </select></td>
<td>* &Uacute;ltimo a&ntilde;o aprobado:                
                <select disabled name='cod_anio_aprob' id="cod_anio_aprob">
                <option value="0"selected></option>
                <?
                $sql3 
"select * from anio_aprob";
                
$result3 mysql_query ($sql3$link);
                while (
$row mysql_fetch_array ($result3)) {
                
$mcodpr $row['cod_anio_aprob'];
                
$mprog $row['dtalle_anio_aprob'];
                if (
$pro == $mcodas)
                echo 
"<option value= '$mcodpr'> $mprog </option>";
                else
                echo 
"<option value= '$mcodpr'> $mprog</option>";
                }
                echo 
"</option>";
                
?>
                </select></td>
  #2 (permalink)  
Antiguo 11/01/2014, 14:15
Avatar de manuparquegiralda  
Fecha de Ingreso: junio-2012
Ubicación: Barcelona
Mensajes: 241
Antigüedad: 11 años, 10 meses
Puntos: 39
Respuesta: Habilitar/deshabilitar select

Es obvio, en la funcion javascript tienes puesto que quieres que se haga cuando el value sea "Si" o "No", pero no cuando el value se igual a "0". Tampoco entiendo porque pones la comparación en el if de cuando sea igual a true, si el select que te llama a la función tiene los valores a enviar predifinidos en los options. Cuando le envías el parámetro "0", puede que javascript te este interprentando como que "0" es igual a "false".

Prueba a poner tu función aquí.

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. function habilitar(value){
  3.     if(value=="Si"){
  4.         document.getElementById("cod_program_est").disabled=false;
  5.         document.getElementById("cod_ins").disabled=false;
  6.         document.getElementById("cod_anio_aprob").disabled=true;
  7.     }else if(value=="No"){
  8.         document.getElementById("cod_program_est").disabled=true;
  9.         document.getElementById("cod_ins").disabled=true;
  10.         document.getElementById("cod_anio_aprob").disabled=false;
  11.     }else{
  12.         document.getElementById("cod_program_est").disabled=true;
  13.         document.getElementById("cod_ins").disabled=true;
  14.         document.getElementById("cod_anio_aprob").disabled=true;
  15.     }
  16. }
  17. </script>
__________________
Diseño Web - Arisman Web

Última edición por manuparquegiralda; 11/01/2014 a las 14:22
  #3 (permalink)  
Antiguo 12/01/2014, 20:09
 
Fecha de Ingreso: septiembre-2013
Ubicación: Bogota
Mensajes: 139
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Habilitar/deshabilitar select

Gracias manuparquegiralda tienes la razon

Etiquetas: select
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 07:39.