Foros del Web » Programando para Internet » Javascript »

Radio buttons desseleccionar

Estas en el tema de Radio buttons desseleccionar en el foro de Javascript en Foros del Web. Saludos!!!! no se si esto se pueda hacer, no he visto ni un solo lugar donde permita hacerlo ni leyendo ni en ningun lado. El ...
  #1 (permalink)  
Antiguo 04/08/2005, 11:59
Avatar de jeanclon  
Fecha de Ingreso: mayo-2005
Mensajes: 258
Antigüedad: 19 años, 5 meses
Puntos: 2
Radio buttons desseleccionar

Saludos!!!! no se si esto se pueda hacer, no he visto ni un solo lugar donde permita hacerlo ni leyendo ni en ningun lado.

El hecho es que quiero poder tener la opcion de desseleccionar algun radio button.

Suponiendo que por ejemplo la pregunta fuera: seleccione sexo: (masculino) (femenino). al comienzo esta ninguno de los dos marcados, pero al marcar uno como hago para volver a tener ninguno seleccionado??

No quiero usar ningun boton de restaurar formulario por que en el mio son muchas preguntas de seleccion simple (SI o NO) el cual permite dejar sin responder las que se quieran, el hecho es de que si la persona respondio una pregunta por error y alli no queria responder nada, tener la opcion de quitar la seleccion.
  #2 (permalink)  
Antiguo 04/08/2005, 12:09
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 20 años
Puntos: 34
Eso es puro Js, hay un foro especificamente para tal pregunta, igual, aca tu respuesta con un ejemplo, si desean moverla, adelante:
Código HTML:
<html>
<head>
</head>
<script>
function limpiar(cual, accion){
// Action: 0=Deseleccionar todos 1=Seleccionar todos -1=Invertir seleccion
	var f = document.formulario
	for (var i=0; i<f.elements.length; i++){
		var obj = f.elements[i]
		var name = obj.name
		if (name==cual){
			obj.checked = ((accion==1)? true : ((accion==0)? false : !obj.checked) );
		}
	}
}
</script>
<body>
<form name="formulario">
	<input type="radio" value="1" name="uno"><br>
	<input type="radio" value="1" name="uno">
	<input type="text" name="pepe">
	<a href="javascript:limpiar('uno',0)">limpiar</a>
</form>
</body>
</html> 
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #3 (permalink)  
Antiguo 04/08/2005, 12:34
Avatar de jeanclon  
Fecha de Ingreso: mayo-2005
Mensajes: 258
Antigüedad: 19 años, 5 meses
Puntos: 2
pero desseleccionaria, o lo que sea cambia, todos los radio buttons del formulario y o que yo quiero es que pueda desseleccionar cualquiera, uno solo, o los que desee. UNO a UNO, como si al volver a seleccionar la opcion esta se borrara.
  #4 (permalink)  
Antiguo 04/08/2005, 12:40
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 20 años
Puntos: 34
Probaste el ejemplo? lo leiste?...hace exactamente lo que pediste y es configurable!

Esto es una ayuda!!!, hombre!!, un esfuezo no te matara!
Aparte de que ahora no se entiende bien lo que queres.....
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #5 (permalink)  
Antiguo 04/08/2005, 12:45
Avatar de jeanclon  
Fecha de Ingreso: mayo-2005
Mensajes: 258
Antigüedad: 19 años, 5 meses
Puntos: 2
veo que deberia utilizar un boton "limpiar" para cada par (o trio o grupo) de radio button, no se ve muy estetico que digamos, no habra algo que se pueda aplicar directamente al propio radio button??
De todos modos vere en los foros de Java script
  #6 (permalink)  
Antiguo 04/08/2005, 12:49
Avatar de jeanclon  
Fecha de Ingreso: mayo-2005
Mensajes: 258
Antigüedad: 19 años, 5 meses
Puntos: 2
El esfuerzo lo estoy haciendo, y claro que ya habia probado el ejemplo, muchas gracias por tu ayuda. Seguire intentando otras cosas o si no buscare por otros medios.
  #7 (permalink)  
Antiguo 04/08/2005, 13:00
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 20 años
Puntos: 34
A ver....
En el ejemplo te puse un grupo de radios....
A la funcion "limpiar" la llamas pasandole el nombre del grupo, por que por lo que comprendo, queres limpiar un grupo especifico (sexo por ejemplo).

Si no es eso, y queres limpiar TODOS los RADIOS, deberas cambiar la condicion "name==cual" por una que sea "type=='radio'", y ya el parametro de cual sería obsoleto.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #8 (permalink)  
Antiguo 04/08/2005, 13:24
Avatar de jeanclon  
Fecha de Ingreso: mayo-2005
Mensajes: 258
Antigüedad: 19 años, 5 meses
Puntos: 2
No yo quiero es poder borrar pregunta por pregunta (separado) es decir limpiar un grupo de radio buttons, como puse lo malo es que deberia poner un link o un boton para cada pregunta o grupo de radio buttons, lo cual no es muy estetico para la pagina, por eso es que pregunte si se podia colocar una accion directamente a los radio buttons.
  #9 (permalink)  
Antiguo 04/08/2005, 13:33
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 20 años
Puntos: 34
Si, la funcion que te di llamala de donde quieras o necesites, y con el evento que mejor se adapte!


PD: Sigo sin entender que queres lograr...:(
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #10 (permalink)  
Antiguo 04/08/2005, 13:39
Avatar de jeanclon  
Fecha de Ingreso: mayo-2005
Mensajes: 258
Antigüedad: 19 años, 5 meses
Puntos: 2
ponte tengo varias preguntas:
sexo (f) (m)
color (a) (v)
flor (r) (v)

en fin varias y ponte que el usuario quiere responder solo la pregunta de sexo y por error respondio todas, y quiere enviar solo la respuesta de sexo, quiero que el pueda quitar las selecciones de color y flor y dejar la de sexo.

Tengo varios formularios y en una hay como 30 preguntas todas de Si o No por eso debo hacerlo con radio buttons ahora ve si respondo por error las 30 y no debi responder la 14 la 20 y la 26 por decir algo, como hacer para que las desseleccione y ya, (solo esas 3).
  #11 (permalink)  
Antiguo 04/08/2005, 13:44
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 20 años
Puntos: 34
al lado de cada grupo, llama a la funcion que te hice...sería algo asi:

...
radios de sexo
...
<a href="javascript:limpiar('nombreRadioSexo',0)">lim piar Sexo</a>

...
radios de Color
...
<a href="javascript:limpiar('nombreRadioColor',0)">li mpiar Color</a>
...


Pediste eso desde el pincipio, y es lo mismo que te puse en el primer post!!!!
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #12 (permalink)  
Antiguo 04/08/2005, 13:47
Avatar de jeanclon  
Fecha de Ingreso: mayo-2005
Mensajes: 258
Antigüedad: 19 años, 5 meses
Puntos: 2
Lo que ahora veo es que utilizare lo que me dijiste uno a una en cada grupo y colocar el href en cada uno de los titulos de las preguntas. (por supuesto vere como hago para que no las ponga con la letra azul ni subrayado.)

Yo lo que queria era que para desseleccionarlas le diera en el mismo option button. intentare un rato probar haciendo una pregunta dentro del mismo option button, si ya ha sido seleccionado al volverlo a seleccionar que llame a la funcion que me diste.
  #13 (permalink)  
Antiguo 04/08/2005, 13:47
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
... y por qué no poner un tercer radio con opción de "ninguna" ó "ignorar", etc??... Tu problema es de estética ¿no?, ¿qué piensas poner?; botón, enlace, checkbox...?

... en principio no tendría por qué verse mal un tercer radio y con esto no te metes en problemas... ¿para qué complicarse??

solo digo... Un saludo!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #14 (permalink)  
Antiguo 04/08/2005, 13:50
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 20 años
Puntos: 34
Es verdad, yo tiro la toalla aca, mas despues de la respuesta de jam1138
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #15 (permalink)  
Antiguo 04/08/2005, 14:00
Avatar de jeanclon  
Fecha de Ingreso: mayo-2005
Mensajes: 258
Antigüedad: 19 años, 5 meses
Puntos: 2
jam1138: a quien le hago el sistema no quiere un tercer radio button.

nicolaspar: si era lo primero que me dijiste, bueno lo que pasa es que esto s mi proyecto de pasantia de grado para graduarme de ingeniero en sistemas, y este a penas es mi primer sistema usando php, durante mis estudios me fui por programacion en visual c y visual basic y ya luego me interese mas por las redes, asi que no se mucho de php y fue donde consegui la pasantia. Poco tiempo y un sistema largo (para un servicio de salud).

El hecho es que el stress a veces mata al cerebro y no lo deja pensar.
  #16 (permalink)  
Antiguo 04/08/2005, 14:07
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 20 años
Puntos: 34
Ok, se entiende, pero no se comprende

No es necesariamente tiene que ser un boton o un texto, tambien podes usar una imagen, o lo que mas bonito te quede. Primero consetra en que necesitas/quieres, y despues preguntas y sulucionas.

Para poner una imagen
<a href="javascript:limpiar('nombreRadioSexo',0)"><im g src="..." ...></a>
o bien:
<img src="..." ... onclick="limpiar('nombreRadioSexo',0)">

Pero ya te digo, planteate primero como quieres que se vea y como funcionara.


PD: Y esto no tiene que ver con php en absoluto!
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #17 (permalink)  
Antiguo 04/08/2005, 14:24
Avatar de jeanclon  
Fecha de Ingreso: mayo-2005
Mensajes: 258
Antigüedad: 19 años, 5 meses
Puntos: 2
OK OK ya esta todo claro, voy a colocar la referencia a la funcion limpiar en los titulos de las preguntas.

queria que fuera si se volvia a seleccionar el mismo radio button que llamara a la funcion pero he intentado y no he logrado lo que quiero, algo cerca pero si lo menciono sera too un enredo.
  #18 (permalink)  
Antiguo 05/08/2005, 03:02
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
Cita:
Iniciado por jeanclon
jam1138: a quien le hago el sistema no quiere un tercer radio button.
Explicales que entonces no se puede asegurar el funcionamiento de sus sistema; JavaScript puede estar desactivado y depender de algo que no puedes aseguarar exista... técnicamente es un error .. imáginate!: no podrán deseleccionar...

Pero... creo algo así es lo que buscas:
Código HTML:
<html><head><script>
var aux= new Array();

function comprobar(rad) {
   var group= rad.name;
   var val= rad.value;
   if(!aux[group]) {
      aux[group]= val;
   } else {
      if (aux[group]==val) {
         aux[group]=false;
         rad.checked=false;
      } else {
         aux[group]=val;
      }
   }
}
</script></head><body>
<!-- Ejemplo en acción: -->
Opción1
<input type="radio" name="opc1" value="Si" onClick="comprobar(this)">Si
<input type="radio" name="opc1" value="No" onClick="comprobar(this)">No
<br> Opción2
<input type="radio" name="opc2" value="Si" onClick="comprobar(this)">Si
<input type="radio" name="opc2" value="No" onClick="comprobar(this)">No
<input type="radio" name="opc2" value="Quiza" onClick="comprobar(this)">Quizá
</body></html> 
Una funcioncita sencilla, no hay gran ciencia. Podrás aplicarla a cualquier grupo de radios con cualquier número de opciones... solo tendrías que agregar el onClick="comprobar(this)" a cada radio (sin cambiar nada!!!.... creo exágeré ).

Espero te sirva!
Pero sigo votando por el tercer radio ... .
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #19 (permalink)  
Antiguo 05/08/2005, 08:13
Avatar de jeanclon  
Fecha de Ingreso: mayo-2005
Mensajes: 258
Antigüedad: 19 años, 5 meses
Puntos: 2
Muchisimas gracias jam1138 era es justamente lo que estaba buscando, ayer andaba buscando alguna manera de lograrlo haciendo preguntas sobre el value de los radio buttons pero no funcionaba, con esto que colocaste quedaria perfecto. y agregar el onclick a cada radio creo que no sera mucho trabajo comparado con las otras cosas que he tenido que agregarle.
asi me queda un ejemplo de radio button que estoy usando.
<input name="alergia" type="radio" value="si" <?php if($_SESSION['alergia']=='si'){ echo checked;}?> onClick="comprobar(this)">
  #20 (permalink)  
Antiguo 17/03/2011, 03:55
 
Fecha de Ingreso: mayo-2007
Mensajes: 54
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Radio buttons desseleccionar

Cita:
Iniciado por nicolaspar Ver Mensaje
Eso es puro Js, hay un foro especificamente para tal pregunta, igual, aca tu respuesta con un ejemplo, si desean moverla, adelante:
Código HTML:
<html>
<head>
</head>
<script>
function limpiar(cual, accion){
// Action: 0=Deseleccionar todos 1=Seleccionar todos -1=Invertir seleccion
	var f = document.formulario
	for (var i=0; i<f.elements.length; i++){
		var obj = f.elements[i]
		var name = obj.name
		if (name==cual){
			obj.checked = ((accion==1)? true : ((accion==0)? false : !obj.checked) );
		}
	}
}
</script>
<body>
<form name="formulario">
	<input type="radio" value="1" name="uno"><br>
	<input type="radio" value="1" name="uno">
	<input type="text" name="pepe">
	<a href="javascript:limpiar('uno',0)">limpiar</a>
</form>
</body>
</html> 
Hola, yo necesito exactamente este código, lo he adaptado a mi formulario para que deseleccione todos los radiobuttons de un test pero no se que estoy haciendo mal...Mi formulario se llama "preguntas", entonces he sustituido el nombre por "var f=document.Preguntas". Tambien he eliminado "var name=obj.name" y en la condición "if(type=='radio)" y por último en la función solo le paso el parámetro "0", algo así onclick="limpiar(0)", todo esto en un boton pero no me hace nada...

Por cierto son grupos de preguntas de cuatro respuestas, cada grupo de radiobuttons tiene un "name=preguntaNº", siendo nº el número en el que estamos.

Saludos y a ver si alguien encuentra mi error...

Os dejo mi código:
Código:
function limpiar( accion){
// Action: 0=Deseleccionar todos 1=Seleccionar todos -1=Invertir seleccion
	var f = document.Preguntas;
	for (var i=0; i<f.elements.length; i++){
		var obj = f.elements[i]
		//var name = obj.name
		if (type=='radio'){
			obj.checked = ((accion==1)? true : ((accion==0)? false : !obj.checked) );
		}
	}
        }
  #21 (permalink)  
Antiguo 17/03/2011, 10:20
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 8 meses
Puntos: 772
Respuesta: Radio buttons desseleccionar

Hola EL_TRITU

Te recuerdo el aviso que había al final de este tema y que parece que no has leído o no le has hecho ni caso.



Tema cerrado.
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




La zona horaria es GMT -6. Ahora son las 00:29.