Foros del Web » Programando para Internet » Javascript »

Deseleccionar un radio button

Estas en el tema de Deseleccionar un radio button en el foro de Javascript en Foros del Web. No he encontrado solución para esto, espero que los expertos de este foro sepan ayudarme. El tema es que una vez pulses una de las ...
  #1 (permalink)  
Antiguo 22/06/2004, 05:05
 
Fecha de Ingreso: junio-2004
Mensajes: 3
Antigüedad: 19 años, 10 meses
Puntos: 0
Deseleccionar un radio button

No he encontrado solución para esto, espero que los expertos de este foro sepan ayudarme.

El tema es que una vez pulses una de las opciones de un radio button, no hay manera de deseleccionar la opcion elegida y dejar el radio button como estaba al principio.
Por ejemplo, en el codigo para realizar un test, donde una respuesta incorrecta reste puntos, puede que se quiera dejar en blanco (ningun radio button activado) despues de haber elegido ya uno. He conseguido solucionar esto haciendo doble click en el radio button con el siguiente código:

<script language="JavaScript">
<!--
function uncheckRadio(rbutton,i) {
if(rbutton[i].checked == true)
rbutton[i].checked = false;
}
//-->
</script>


<input type="radio" name="radio" value="1" onDblClick="uncheckRadio(this.form.radio,0)">opcio n 1
<input type="radio" name="radio" value="2" onDblClick="uncheckRadio(this.form.radio,1)">opcio n 2
<input type="radio" name="radio" value="3" onDblClick="uncheckRadio(this.form.radio,2)">opcio n 3
<input type="radio" name="radio" value="4" onDblClick="uncheckRadio(this.form.radio,3)">opcio n 4


La solución que me gustaria es haciendo click normal, no dobleclick.
Si alguien me puede ayudar, muchas gracias.
  #2 (permalink)  
Antiguo 22/06/2004, 06:11
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Prueba esto:

<script language="JavaScript">
<!--
function uncheckRadio(rbutton) {
rbutton.checked=(rbutton.checked)?false:true;
}
//-->
</script>

Y en los radio pon esto:

<input type="radio" name="radio" value="4" onDblClick="uncheckRadio(this)">opcion 4

Así te ahorras código
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.

Última edición por KarlanKas; 22/06/2004 a las 06:16
  #3 (permalink)  
Antiguo 22/06/2004, 06:27
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
nopes! No va...
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #4 (permalink)  
Antiguo 22/06/2004, 06:31
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Ya está!

Así:
<script language="JavaScript">
<!--
var era;
function uncheckRadio(rbutton){
if(rbutton.checked==true && era==true){rbutton.checked=false;}
era=rbutton.checked;
}
//-->
</script>

y en el form como te he dicho antes:
<input type="radio" name="radio" value="4" onclick="uncheckRadio(this)">opcion 4

Dime que tal!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.

Última edición por KarlanKas; 22/06/2004 a las 06:33
  #5 (permalink)  
Antiguo 23/06/2004, 08:50
 
Fecha de Ingreso: junio-2004
Mensajes: 3
Antigüedad: 19 años, 10 meses
Puntos: 0
Gracias KarlanKas, funciona! pero el problema viene cuando tienes activado otro radio button del mismo grupo y lo quieres cambiar, al pulsar sobre otor radio button lo que hace es dejarlos en blanco y has de pulsar otra vez para seleccionarlo, con lo que tienes que hacer dobleclick igualmente, antes para deseleccionarlo ahora para seleccionarlo.
Seguire probando, gracias.

Por cierto, lo que quiero conseguir se podria aplicar aqui mismo, me he dado cuenta de que cuando eliges un icono para los mensajes, esta la opcion "Sin icono", ya que una vez elegido un icono, no hay manera de deseleccionar el radio button.
  #6 (permalink)  
Antiguo 23/06/2004, 09:26
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Prueba con esto:

<script language="JavaScript">
<!--
var era;
var previo=null;
function uncheckRadio(rbutton){
if(previo &&previo!=rbutton){previo.era=false;}
if(rbutton.checked==true && rbutton.era==true){rbutton.checked=false;}
rbutton.era=rbutton.checked;
previo=rbutton;
}
//-->
</script>
<input type="radio" name="radio" value="4" onclick="uncheckRadio(this)">opcion 4
<input type="radio" name="radio" value="2" onclick="uncheckRadio(this)">opcion 4

__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #7 (permalink)  
Antiguo 23/06/2004, 09:36
 
Fecha de Ingreso: junio-2004
Mensajes: 3
Antigüedad: 19 años, 10 meses
Puntos: 0
Eres un fiera KarlanKas ahora si que funciona, muchas gracias.
Me ha traido de cabeza esta tonteria, lo que no entiendo es como no viene de casa con los radio buttons esta sencilla funcionalidad.

Taluec y gracias de nuevo.
  #8 (permalink)  
Antiguo 23/06/2004, 09:55
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
De nada, ha sido muy divertido!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 02:21.