Desmarcar Radio button

isct
06 de Junio del 2008
Hola, ¿Cómmo se hace por javascript para que al pinchar una opción de un radio marcada se desmarque?

Muchas gracias.

Jorge
06 de Junio del 2008
Eso que pretendes no es el comportamiento estandar de los botones de radio.
Se podria hacer, pero ¿por que complicarse la vida? ¿Por que no emplear una casilla de verificacion? Al fin y al cabo parece mas lo que tu necesitas.


De nada.

isct
06 de Junio del 2008
Gracias por tu respuesta, lo que pretendía era aprovecharme de los radio buttons para que las opciones fueran exclusivas.

Drocher
06 de Junio del 2008
Hola,
He conseguido hacer lo que pides mediante unos campos ocultos asociados a los radiobutton, tal y como puedes vera continuación, seguro que se puede mejorar:

<HTML>
<HEAD>
<TITLE>Desmacar Radio Button</TITLE>

<SCRIPT language="JavaScript">
/* ***********************************************************************************
CUANDO SE EJECUTA: Al seleccionar un radio button
QUE HACE: Si ya esta seleccionado este radio lo deselecciona
*********************************************************************************** */
function Desmarcar(Radio_nombre,value) {
if (value == 'P') {
RadioChecked = eval("form."+Radio_nombre+"[0].checked");
RadioOculto = eval("form."+Radio_nombre+"_P.value");
}
else {
RadioChecked = eval("form."+Radio_nombre+"[1].checked");
RadioOculto = eval("form."+Radio_nombre+"_A.value");
}

if (RadioChecked == true && RadioOculto == "true") {
for (i=0; i<eval("form."+Radio_nombre+".length"); i++)
eval("form."+Radio_nombre+"[i].checked=false");
eval("form."+Radio_nombre+"_P.value=false");
eval("form."+Radio_nombre+"_A.value=false");
return false;
}
if (value == 'P') {
eval('form.'+Radio_nombre+'_P.value="'+RadioChecked+'"');
eval('form.'+Radio_nombre+'_A.value="false"');
}
else {
eval('form.'+Radio_nombre+'_P.value="false"');
eval('form.'+Radio_nombre+'_A.value="'+RadioChecked+'"');
}
}
</SCRIPT>
</HEAD>

<BODY bgcolor="#FFFFFF">

<FORM method="post" action="" name="form" OnKeyDown="eliminaESC()" onKeyPress="eliminaTeclas()">
<TABLE bgcolor="#fafad2" WIDTH="200px" ALIGN="left" border="0" cellpadding="0" cellspacing="2">
<TR>
<TD width="60%">Radio Button 1: </TD>
<TD width="20" >
<INPUT class="ClsNbrCampoAlt" type="radio" name="Radio1" Onclick="JavaScript:Desmarcar(this.name,this.value)" value="P">
<INPUT type="hidden" name="Radio1_P" value="false">
</TD>
<TD width="20%" >
<INPUT class="ClsNbrCampoAlt" type="radio" name="Radio1" Onclick="JavaScript:Desmarcar(this.name,this.value)" value="A">
<INPUT type="hidden" name="Radio1_A" value="false">
</TD>
</TR>
<TR>
<TD width="60%">Radio Button 2: </TD>
<TD width="20%" >
<INPUT class="ClsNbrCampoAlt" type="radio" name="Radio2" Onclick="JavaScript:Desmarcar(this.name,this.value)" value="P">
<INPUT type="hidden" name="Radio2_P" value="false">
</TD>
<TD width="20%" >
<INPUT class="ClsNbrCampoAlt" type="radio" name="Radio2" Onclick="JavaScript:Desmarcar(this.name,this.value)" value="A">
<INPUT type="hidden" name="Radio2_A" value="false">
</TD>
</TR>
</TABLE>
</FORM>

</BODY>

</HTML>