JavaScript - No me funciona el atributo disable con Select

 
Vista:
Imágen de perfil de Boris

No me funciona el atributo disable con Select

Publicado por Boris (2 intervenciones) el 15/04/2022 03:57:31
Estimados amigos,

He probado varias formas de activar y desactivar un select. Sin embargo, solo consigo desactivarlos pero no activarlos. El código es muy sencillo, al presionar un botón se activa una función en Javascript que habilita varios campos entre los cuales está dos select.

Aquí va el código HTML

<div class="form-group col-lg-4 col-md-6 col-sm-6 col-xs-6">
<label>Nacionalidad (*)</label>
<select id="nacionalidad" name="nacionalidad" class="form-control selectpicker" data-live-search="true" required disabled="TRUE">
<option value="VENEZUELA" selected>VENEZUELA</option>
<option value="COLOMBIA">COLOMBIA</option>
<option value="PERÚ">PERÚ</option>
<option value="BRASIL">BRASIL</option>
<option value="ARGENTINA">ARGENTINA</option>
<option value="CHILE">CHILE</option>
<option value="EEUU">EEUU</option>
<option value="OTRO">OTRO</option>
</select>

</div>

El código en Javascript

function editarform()
{
//$('#nacionalidad').removeAttr("disabled");
document.getElementById('tipo_doc').disabled=false;

}

Cuando presiono el botón no activa los select...alguien me podrá dar una manito???
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

No me funciona el atributo disable con Select

Publicado por antonio (16 intervenciones) el 15/04/2022 12:45:01
Si quieres deshabilitar y habilitar el select cuando le das al botón este es el código:

<script>
function myFunction() {

if(document.getElementById('nacionalidad').disabled==false){
document.getElementById('nacionalidad').disabled=true;
}
else{
document.getElementById('nacionalidad').disabled=false;
}
}

</script>

<div class="form-group col-lg-4 col-md-6 col-sm-6 col-xs-6">
<label>Nacionalidad (*)</label>
<select id="nacionalidad" name="nacionalidad" class="form-control selectpicker" disabled>
<option value="VENEZUELA" selected>VENEZUELA</option>
<option value="COLOMBIA">COLOMBIA</option>
<option value="PERÚ">PERÚ</option>
<option value="BRASIL">BRASIL</option>
<option value="ARGENTINA">ARGENTINA</option>
<option value="CHILE">CHILE</option>
<option value="EEUU">EEUU</option>
<option value="OTRO">OTRO</option>
</select>
<input type="submit" id="habilitar" onclick="myFunction()">

Si solo quieres habilitar el select cuando le das al botón solo cambia el script a:

<script>
function myFunction() {


document.getElementById('nacionalidad').disabled=false;

}
</script>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Silverfox

No me funciona el atributo disable con Select

Publicado por Silverfox (2 intervenciones) el 15/04/2022 16:01:55
Gracias Antonio por darte el tiempo por contestar, sigue SIN funcionar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Ivan

No me funciona el atributo disable con Select

Publicado por Ivan (118 intervenciones) el 19/04/2022 11:59:05
Hola,

el problema es que el atributo disable no tiene un valor true/false propiamente dicho.
Simplemente si existe el atributo disabled entonces se intepreta como que se debe deshabilitar su elemento, independientemente de si es true o false.

La manera más correcta de crear una función es añadiendo o quitando dicho atributo. Basándome en tu código esto funciona correctamente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<!DOCTYPE html>
<html>
<head>
  <script>
    function myFunction() {
        var element = document.getElementById("nacionalidad");
        if (element.disabled) element.removeAttribute("disabled", "");
        else element.setAttribute("disabled", "");
    }
  </script>
</head>
 
<body>
<div class="form-group col-lg-4 col-md-6 col-sm-6 col-xs-6">
<label>Nacionalidad (*)</label>
<select id="nacionalidad" name="nacionalidad" class="form-control selectpicker">
<option value="VENEZUELA" selected>VENEZUELA</option>
<option value="COLOMBIA">COLOMBIA</option>
<option value="PERÚ">PERÚ</option>
<option value="BRASIL">BRASIL</option>
<option value="ARGENTINA">ARGENTINA</option>
<option value="CHILE">CHILE</option>
<option value="EEUU">EEUU</option>
<option value="OTRO">OTRO</option>
</select>
<p>Click el botón para activar/desactivar</p>
<button onclick="myFunction()">Disable/Enable</button>
</div>
</body>
</html>

Observa que se crea el elemento disabled sin necesidad de especificar true/false por lo dicho anteriormente,

Un saludo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Ivan

No me funciona el atributo disable con Select

Publicado por Ivan (118 intervenciones) el 19/04/2022 12:46:38
Corrijo un lapsus, para eliminar el atributo no hace falta añadir parámetros:

1
element.removeAttribute("disabled");

Un saludo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar