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>