estoy haciendo una web tipo cuestionario, en la que se presenta una pregunta y varias opciones;
entonces, quiero que cuando diga ninguna de las anteriores se active un cuadro de texto para que el usuario escriba su respuesta.
Tengo este codigo
Código:
sucede que mas o menos hace lo que quiero, sin embargo, tiene errores para lo que quiero;<SCRIPT language="JavaScript" type="text/javascript"> agree = 0; // 0 means 'si', 1 means 'yes' </script> <form name="pregunta" method="post" action="manejador.php"> <p>Al sumar 1/3 + 2/3 se obtiene:<br /> <input name="distractor" type="radio" value="rbipeliculas" onClick="agree=0; document.pregunta.box.focus();" />0<br /> <input name="distractor" type="radio" value="rbilibros" onClick="agree=0; document.pregunta.box.focus();" />1<br /> <input name="distractor" type="radio" value="rbiinternet"onClick="agree=0; document.pregunta.box.focus();" />2/6<br /> <input name="distractor" type="radio" value="ninguna" onClick="agree=1; document.pregunta.box.focus();"/>Ninguna de las anteriores<br /> Otra <input type=text name=box onFocus="if (!agree)this.blur();" onChange="if (!agree)this.value='';" size=12> </p> <INPUT TYPE="submit" VALUE="Enviar"> </form>
1º si se selecciona "ninguna de las anteriores" y luego se escribe algo en el cuadro de texto y luego se selecciona otra de las opciones y se envía, se enviaran los dos datos, y eso me podría ocasionar problemas al recibir los datos.
2º el cuadro de texto no se desactiva solo se bloquea, me gustaría que se desactivara.
Bueno si alguien me puede ayudar lo agradecería..
SAludos
------------------
modificacion
Bueno; he encontrado la respuesta en otro punto de este foro gracias a un script de JavierB, asi que dejo como quedo el codigo por si alguien lo necesita;
Código HTML:
<script language="javascript" type="text/javascript"> function mostrar(frm) { //activamos todos los cuadros de texto for(i=0;i<frm.elements.length;i++) frm.elements[i].disabled=false; //desactivamos los cuadros de texto que correspondan for(i=1;i<mostrar.arguments.length;i++) eval('frm.'+mostrar.arguments[i]+'.disabled=true'); } </script> <body> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <div id="contenido"> <form name="pregunta" method="post" action="manejador.php"> <p>Al sumar 1/3 + 2/3 se obtiene:<br /> <input name="distractor" type="radio" value="uno" onclick="mostrar(this.form,'box')" />0<br /> <input name="distractor" type="radio" value="dos" onclick="mostrar(this.form,'box')" />1<br /> <input name="distractor" type="radio" value="tres"onclick="mostrar(this.form,'box')" />2/6<br /> <input name="distractor" type="radio" value="ninguna" onclick="mostrar(this.form,'')" />Ninguna de las anteriores <input type=text name=box onFocus="if (!agree)this.blur();" onChange="if (!agree)this.value='';"size=12> </p> <INPUT TYPE="submit" VALUE="Enviar"> </form>