Tema: test
Ver Mensaje Individual
  #17 (permalink)  
Antiguo 01/06/2004, 13:23
Avatar de KarlanKas
KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 11 meses
Puntos: 61
Ya todo arreglado. Sin ese final tan desagradable y alguna que otra mejora el código quedaría así:
Código HTML:
<html>
<head>
	<title>Untitled</title>
<script>

responderTodas=false; //ponlo en true para obligar a que responda todas.
mensajeA="Ha respondido mayoritariamente Aes";
mensajeB="Ha respondido mayoritariamente Bes";
mensajeC="Ha respondido mayoritariamente Ces";
mensajeD="Ha respondido mayoritariamente Des";
mensajeEmpate="No se decide usted, eh?";

eMail="[email protected]";
titulo="respuesta del formulario";
comienzo="Hola! Se ha recibido una respuesta del formulario. ";
despedida="Reciba un cordial saludo de KarlanKas!"
function comprobar(){
	//Inicialización de variables
	var a=0;
	var b=0;
	var c=0;
	var d=0;
	var total=0;
	var nombre="";
	var preguntas=0;
	var	formulario=document.forms[0];
	var ganador=false;
	var restoEmail=""
	//Inicio de la comprobación
	
	for(q=0;q<formulario.length;q++){
			
			//Si el elemento es un radio y tiene nuevo nombre (es una nueva ristra de preguntas)
			if(formulario.elements[q].type=="radio" && formulario.elements[q].name!=nombre){
			//Contar una pregunta más
			preguntas+=1;
			//Cambiar el valor de nombre anterior por el actual
			 nombre=formulario.elements[q].name;
			 }
			 
			 //Si está seleccionada esta respuesta
			  if(formulario.elements[q].checked){
			  	restoEmail+="La respuesta a la pregunta "+preguntas+" ha sido la "+formulario.elements[q].value+".%0D%0A";
				//Sumar una a la letra en cuestión
				eval(formulario.elements[q].value+"+=1");
				//Sumar una al total de respuestas
				total+=1;
				}
			
}
	//Si no se han contestado todas
	if(responderTodas && total!=preguntas){alert("Debe responder a todas las preguntas antes de continuar");return false}
	if(a>b && a>c && a>d){mensaje=mensajeA;ganador=true;}
	if(b>a && b>c && b>d){mensaje=mensajeB;ganador=true;}
	if(c>b && c>a && c>d){mensaje=mensajeC;ganador=true;}
	if(d>b && d>a && c<d){mensaje=mensajeD;ganador=true;}
	if(!ganador){mensaje=mensajeEmpate;}
	alert(mensaje);
	if(ganador){
	formulario.action="mailto:"+eMail+" ?subject="+titulo+" &body="+comienzo+"%0D%0A"+"%0D%0A"+restoEmail+"%0D%0A%0D%0ADe lo que se desprende que...%0D%0A%0D%0A"+mensaje+"%0D%0A%0D%0A"+despedida+" &";

	formulario.submit();return false}
	}
	
	</script>
</head>

<body>
<form action="" onsubmit="return comprobar()" >
1. Pregunta<br>

<input type="radio" name="pregunta1" value="a">Respuesta A<br>
<input type="radio" name="pregunta1" value="b">Respuesta B<br>
<input type="radio" name="pregunta1" value="c">Respuesta C<br>
<input type="radio" name="pregunta1" value="d">Respuesta D<br><br>
2. Pregunta<br>

<input type="radio" name="pregunta2" value="a">Respuesta A<br>
<input type="radio" name="pregunta2" value="b">Respuesta B<br>
<input type="radio" name="pregunta2" value="c">Respuesta C<br>
<input type="radio" name="pregunta2" value="d">Respuesta D<br><br>

3. Pregunta<br>

<input type="radio" name="pregunta3" value="a">Respuesta A<br>
<input type="radio" name="pregunta3" value="b">Respuesta B<br>
<input type="radio" name="pregunta3" value="c">Respuesta C<br>
<input type="radio" name="pregunta3" value="d">Respuesta D<br><br>

4. Pregunta<br>

<input type="radio" name="pregunta4" value="a">Respuesta A<br>
<input type="radio" name="pregunta4" value="b">Respuesta B<br>
<input type="radio" name="pregunta4" value="c">Respuesta C<br>
<input type="radio" name="pregunta4" value="d">Respuesta D<br><br>

<input type="submit">

</form>


</body>
</html> 
Espero que te sirva!
__________________
Cómo escribir

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