Completando un poco lo dicho por zero_sos (hola!!) te indico que se puede manejar la propiedad "disabled" con javascript. Sólo tenemos que localizar el input que queremos deshabilitar. Así, en una página con un solo formulario ponemos: Código PHP:
document.forms[0].nombredelcampo.disabled=true;
En todo documento, javascript hace un Array con todos los formularios de la página, como sólo hay un formulario señalamos el primero (recuerda que Javascript empieza a enumerar con el 0) con forms[0]. Luego buscamos el campo con el nombre (name) que se le ha puesto. Y por último, una vez localizado el campo de decimos que su propiedad disabled (deshabilitado) sea cierta, es decir que la deshabilite. Si queremos habilitarla sólo tenemos que decirle que es falso, es decir: disabled=false.
Pero cómo hacemos para que pase de una a otra? Ya has dicho que te gustaría que fuera dependiendo de un combo. Cada option de un select tiene un value, así podríamos decir que si el value del select fuera uno que lo deshabilitara y si fuera otro que lo habilitara. Podría ser... Código PHP:
if(document.forms[0].nombreDelSelect.value=="activo"){document.forms[0].nombreDelInput.disabled=false}
else{document.forms[0].nombreDelInput.disabled=true}
pero como podemos hacer qe salte esta sentencia? Lo podemos meter en una función para que lo ejecute cuando la llamemos. Así la llamariamos activar(), por ejemplo.
Código PHP:
function activar(){
if(document.forms[0].nombreDelSelect.value=="activo"){document.forms[0].nombreDelInput.disabled=false}
else{document.forms[0].nombreDelInput.disabled=true}
}
Pero y como hacer que se ejecute?
Podemos decirle al select que cuando cambie que llame a la función. ¿Cómo? así:
<select onchange="activar()">
Así estaría listo. Pero la función no termina de convencerme... seguro que hay una forma más fácil... y si ponemos:
Código PHP:
function activar(){
document.forms[0].nombreDelInput.disabled=(document.forms[0].nombreDelSelect.value==1)?true:false;
}
Con esto se dice que deshabilite o no según se cumpla la igualdad entre parentesis.
Con todos esto podríamos concluir que un ejemplo de esto podría ser:
Código PHP:
<html>
<head>
<style>
form,input,select{color:navy;
font:normal 10px/10px verdana;}
</style>
<script>
function activar(){
document.forms[0].texto.disabled=(document.forms[0].queHago.value==1)?true:false;
}
</script>
<title>Untitled</title>
</head>
<body>
<form action="javascript:alert('Enviando')">
¿Qué hago? <select onchange="activar()" name="queHago">
<option value="0">Activar TextBox</option>
<option value="1">Desactivar TextBox</option>
</select><br>
Texto a introducir:<input type="Text" name="texto">
</form>
</body>
</html>