Había un problema ocasionado, probablemente porque la caja de texto tenía el mismo "name" que los "radio buttons". He hecho unos cambios. Decidme si os funciona así. Código PHP:
<form name="enviar"
method="POST"
action="javascript:alert(document.forms[0].textoescrito.value);">
OPCION 1
<input type="radio"
onclick="document.forms[0].elements[3].disabled=true;"
name="texto"
value="texto1"><br>
OPCION 2
<input type="radio"
onclick="document.forms[0].elements[3].disabled=true;"
name="texto"
value="texto2"><br>
OPCION 3
<input type="radio"
value="texto3"
onclick="document.forms[0].elements[3].disabled=false;"
name="texto">
<input disabled="disabled"
type="text"
name="textoescrito"
value="ponetexto">
<input type="submit">
</form>
gizmho!
Si te fijas en el ejemplo verás que es muy sencillo hacer lo que pides. Si por ejemplo quieres deshabilitar un campo que se llame nombre lo puedes hacer así:
document.forms[0].nombre.disabled=true;
y para habilitarlo:
document.forms[0].nombre.disabled=false;
Luego, si quieres habilitar y deshabilitar varios mételos en una function y llámala con el onclick. Así: Código PHP:
<head>
<script>
function opcion1(){
document.forms[0].nombre.disabled=true;
document.forms[0].direccion.disabled=true;
document.forms[0].mail.disabled=true;
document.forms[0].telefono.disabled=false;
}
function opcion2(){
document.forms[0].nombre.disabled=false;
document.forms[0].direccion.disabled=false;
document.forms[0].mail.disabled=false;
document.forms[0].telefono.disabled=true;
}
</script>
</head>
<body>
]<form name="enviar"
method="POST"
action="pagina2.html">
OPCION 1
<input type="radio"
onclick="opcion1()"
name="texto"
value="texto1"><br>
OPCION 2
<input type="radio"
onclick="opcion2()"
name="texto"
value="texto2"><br>
...
Nombre: <input type="text" name="nombre"><br>
Dirección: <input type="text" name="direccion"><br>
Mail: <input type="text" name="mail"><br>
Teléfono: <input type="text" name="telefono">
<input type="submit">
</form>
Espero que os sirva a todos. Y perdonad por no contestar antes, no he recibido ningún aviso de contestación al hilo.