Ver Mensaje Individual
  #20 (permalink)  
Antiguo 17/03/2011, 03:55
EL_TRITU
 
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) );
		}
	}
        }