Tu problemática se parece un poco a la que expuse yo en este hilo:
http://www.forosdelweb.com/f13/manejar-numeros-argumento-funcion-1021147/
La verdad tengo prisa, en otro momento te hubiera explicado un poco mejor, pero la idea es que al detectar cambio de estado (onChange), es decir de activado a desactivado, de seleccionado a des-seleccionado, de 1 a 0, o como lo quiera ver. El javascript debe hacer "algo" en el elemento que te interese, en este caso tu "algo" es habilitar y deshabilitar el input/select; esto se hace con la propiedad
disabled que puede ser
true o
false.
Te dejo un ejemplo funcional de lo que requieres, la clave son los ID, es muy útil manejar así las páginas, te lo recomiendo y espero te ayude. Las claves del código son el
onchange y las ID.
Código HTML:
Ver original<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8" /> <title>Activa y desactiva
<script type="text/javascript"> function activainput() {
document.getElementById("js_no").disabled = true; //DESHABILITA el select (id="js_no")
document.getElementById("js_si").disabled = false; //HABILITA el input (id="js_si")
}
function activaselect() {
document.getElementById("js_no").disabled = false; //HABILITA el select
document.getElementById("js_si").disabled = true; //DESHABILITA el input
}
<form name="formulario" action="#"> <input type="radio" name="Escojer" value="Si" onchange="activainput();">Si
<input type="Text" name="SI" id="js_si"> <input type="radio" name="Escojer" value="No" onchange="activaselect();">No
Espero haberte ayudado, un saludo.-
PD: como recomendacion no te bases en códigos solo para cambiarlos, es mejor hacerlos uno porque las necesidades de otros no siempre son las mismas que las nuestras.