2011-03-10 10 views
5

Lo que quiero es que el cuadro de texto sólo se puede acceder si una determinada opción es recogido desde el menú desplegable y tengo un formulario HTML de la siguiente manera:Activar/desactivar de cuadro de texto en la opción seleccionada en el menú desplegable

<tr> 
<td>a.&nbsp;Did any of your staff participate in training or orientation sessions related to any aspect of social performance management, during the reporting year? </td> 
<td > 
<p> 
    <select name="mfi_4_a_i"> 
    <option>Yes</option> 
    <option>No</option> 
    <option>No, but planning in future</option> 
    </select> 
</p> 
<p>if not,and not planning please explain why not </p> 
<input type="text" name="mfi_4_a_ii" id="sdd" /> 
</tr> 

Ahora cuando un usuario selecciona la opción No, pero planea en el futuro, entonces el cuadro de texto debe estar habilitado; de lo contrario, el cuadro de texto debe estar deshabilitado.

¿Cómo puedo lograr esto?

+0

duplicados [Pregunta] (http://stackoverflow.com/questions/5255969/how-to-make-a-checkbox-enable-and- disable-a-text-box-in-multiple-cases) por el mismo usuario – diEcho

Respuesta

9

Debe llamar a la función de JavaScript para esto.

<select id="mfi_4_a_i" name="mfi_4_a_i" onChange="changetextbox();"> 
    <option>Yes</option> 
    <option>No</option> 
    <option>No, but planning in future</option> 
</select> 

<input type="text" name="mfi_4_a_ii" id="sdd" /> 

<script type="text/javascript"> 
function changetextbox() 
{ 
    if (document.getElementById("mfi_4_a_i").value === "noy") { 
     document.getElementById("sdd").disable='true'; 
    } else { 
     document.getElementById("sdd").disable='false'; 
    } 
} 
</script> 
+2

.disable no es una propiedad/atributo válida document.getElementById ("sdd"). Disable = 'true'; en realidad debería ser document.getElementById ("sdd"). Disabled = 'true'; y luego falso no es un valor válido para "deshabilitado", por lo que es "" vacío en su lugar. – Nashe

+0

¿Qué es "noy" y cómo representa la última opción –

0

Sin hacer una ida y vuelta al servidor, que tendrá que hacerlo con javascript

+0

¿me puede decir en detalle o puede darme un enlace o algunos consejos para hacerlo. – Nyaro

8

Para mí la document.getElementById("sdd").disabled='false' no funcionó, así que utiliza

document.getElementById("sdd").disabled='';

if (document.getElementById("mfi_4_a_i").value === "noy") { 
    document.getElementById("sdd").disabled='true'; 
} else { 
    document.getElementById("sdd").disabled=''; 
} 
0

document.getElementById("the_id").disabled=''; funciona para mí. funciona, al igual que style.display

2

Solo correcciones ... eliminación de; , ===, Noy, 'verdadero' #no cita

onChange="changetextbox();" 
if (document.getElementById("mfi_4_a_i").value == "no") { 
document.getElementById("sdd").disabled=true; 
Cuestiones relacionadas