Ver Mensaje Individual
  #4 (permalink)  
Antiguo 12/03/2007, 09:34
Avatar de keldrox
keldrox
 
Fecha de Ingreso: noviembre-2005
Mensajes: 95
Antigüedad: 18 años, 6 meses
Puntos: 2
Re: Validar un test

Aqui tienes el codigo HTML (fijate bien en la cabecera que incluye a la function en JS:
Código:
<html>
	<head>
		<script language="javascript" src="validar.js"></script>
	</head>

	<body>
	
		<form name="formulario_validar" method="post" action="tupagina.php">
		
			¿Pregunta numero 1? <br />
			<label>
			<input name="preg1" type="radio" value="1" />
			Opcion 1</label><br />
			<label>
			<input name="preg1" type="radio" value="2" />
			Opcion 2</label><br />
			<label>
			<input name="preg1" type="radio" value="3" />
			Opcion 3</label><br /><br />
		
			¿Pregunta numero 2? <br />
			<label>
			<input name="preg2" type="radio" value="1" />
			Opcion 1</label><br />
			<label>
			<input name="preg2" type="radio" value="2" />
			Opcion 2</label><br />
			<label>
			<input name="preg2" type="radio" value="3" />
			Opcion 3</label><br /><br />
			
			¿Pregunta numero 3? <br />
			<label>
			<input name="preg3" type="radio" value="1" />
			Opcion 1</label><br />
			<label>
			<input name="preg3" type="radio" value="2" />
			Opcion 2</label><br />
			<label>
			<input name="preg3" type="radio" value="3" />
			Opcion 3</label><br /><br /><br />
		
			<input type="button" onclick="validar_form('formulario_validar')" value="Enviar formulario" />
			
		</form>
	
	</body>
	
</html>

Y aqui la function en JS: (Guardalo en un fichero como validar.js)
Código:
function validar_form( nombreForm )
{
	///////////////
	// Variables //
	///////////////
	var cont;
	var cont2;
	var nombreGrupo;
	var validarCheck;


	for ( cont = 0 ; cont < document.forms[nombreForm].elements.length ; ++cont )
	{
		if( document.forms[nombreForm].elements[cont].type == "radio" )
		{
			nombreGrupo = document.forms[nombreForm].elements[document.forms[nombreForm].elements[cont].name];
			
			validarCheck = false;
			
			for( cont2 = 0; cont2 < nombreGrupo.length; ++cont2 )
			{
				if ( nombreGrupo[cont2].checked )
				{	
					validarCheck = true;
					
					break;
				}
			}
			
			if( !validarCheck )
			{
				break;
			}
		}
	}
	
	if( validarCheck )
	{
		alert("Se han respondido todas las preguntas, el formulario se enviara.");

		document.forms[nombreForm].submit();
	}
	else
	{
		alert("Debes contestar todas las preguntas.");
		return false;
	}
}
Puedes crear un formulario con tantas preguntas y radioButtons quieras que la function te valdra.

Saludos!