Desmarcar Radio button
Hola, ¿Cómmo se hace por javascript para que al pinchar una opción de un radio marcada se desmarque?
Muchas gracias.
Muchas gracias.
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.
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.
Gracias por tu respuesta, lo que pretendía era aprovecharme de los radio buttons para que las opciones fueran exclusivas.
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>
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>