Comunidad de diseño web y desarrollo en internet online

Cuestionario preguntas con respuestas.

Citar            
MensajeEscrito el 15 Abr 2013 06:34 am
Hola a todos, he creado un test y su corrección en la misma página.
No sé en que estoy fallando, pero cuando ejecuto no hay forma de que aparezca la corrección del test en la parte de abajo de la página.

¿Alguien sabe donde estoy fallando? Me estoy volviendo loco. O existe otra manera de hacerlo??
Muchas gracias. Aquí os dejo el código:

<html>
<head>
<title>Corrección de un test</title>
<script language="JavaScript">
function corregir(){
var p1
var p2
var p3
var aciertos = 0
var fallos = 0
var blancos = 0
var nota
var notaFinal
<!-- 1º pregunta-->
if (document.getElementById('p11').checked==true) {
p1 = 1;
aciertos++;
}else if (document.getElementById('p12').checked==true){
p1 = -0.5;
fallos++;
}else if (document.getElementById('p13').checked==true){
p1 = -0.5;
fallos++;
}else if (document.getElementById('p14').checked==true){
p1 = -0.5;
fallos++;
}else{
p1= -0.1;
blancos++;
}

<!-- 2º pregunta-->
if (document.getElementById('p21').checked==true) {
p2 = 1;
aciertos++;
}else if (document.getElementById('p22').checked==true){
p2 = -0.5;
fallos++;
}else if (document.getElementById('p23').checked==true){
p2 = -0.5;
fallos++;
}else if (document.getElementById('p24').checked==true){
p2 = -0.5;
fallos++;
}else{
p2= -0.1;
blancos++;
}

<!-- 3º pregunta-->
if (document.getElementById('p31').checked==true) {
p3 = 1;
aciertos++;
}else if (document.getElementById('p32').checked==true){
p3 = -0.5;
fallos++;
}else if (document.getElementById('p33').checked==true){
p3 = -0.5;
fallos++;
}else if (document.getElementById('p34').checked==true){
p3 = -0.5;
fallos++;
}else{
p3= -0.1;
blancos++;
}

nota = p1+p2+p3;
if(nota<0){
puntuacion = 0;
}else{
puntuacion = nota;
}
[COLOR="Red"]document.resultado.getElementById('aciertos').value = aciertos;
document.resultado.getElementById('fallos').value = fallos;
document.resultado.getElementById('blancos').value = blancos;
document.resultado.getElementById('puntuacion').value = puntuacion;[/COLOR]
}
</script>
</head>
<body>
<form name="preguntas">
<p><!-- Primera pregunta -->
1.- Este es el enunciado de la primera pregunta del test. </p>
<p>
<input type="radio" name="pregunta1" id="p11" value="A"> Texto de la respuesta A. </p>
<p>
<input type="radio" name="pregunta1" id="p12" value="B"> Texto de la respuesta B. </p>
<p>
<input type="radio" name="pregunta1" id="p13" value="C"> Texto de la respuesta C. </p>
<p>
<input type="radio" name="pregunta1" id="p14" value="D"> Texto de la respuesta D. </p>
<p> </p>
<!-- Segunda pregunta -->2.- Este es el enunciado de
la segunda pregunta del test.
<p> </p>
<p>
<input type="radio" name="pregunta2" id="p21" value="A"> Texto de la respuesta A. </p>
<p>
<input type="radio" name="pregunta2" id="p22" value="B"> Texto de la respuesta B. </p>
<p>
<input type="radio" name="pregunta2" id="p23" value="C"> Texto de la respuesta C. </p>
<p>
<input type="radio" name="pregunta2" id="p24" value="D"> Texto de la respuesta D. </p>
<p> </p>
<!-- Tercera pregunta -->3.- Este es el enunciado de
la tercera pregunta del test.
<p> </p>
<p>
<input type="radio" name="pregunta3" id="p31" value="A"> Texto de la respuesta A. </p>
<p>
<input type="radio" name="pregunta3" id="p32" value="B"> Texto de la respuesta B. </p>
<p>
<input type="radio" name="pregunta3" id="p33" value="C"> Texto de la respuesta C. </p>
<p>
<input type="radio" name="pregunta3" id="p34" value="D"> Texto de la respuesta D. </p>
<p> </p>
</form>
<form name="boton">
<input type="button" name="boton" value=" CORREGIR " onclick="corregir()"/>
</form>
<br><br>
<b>RESULTADO DEL TEST</b>
<p>
<form name="resultado" action="">

Has acertado <input size="3" id="aciertos"> preguntas <br>
Has fallado en <input size="3" id="fallos"> preguntas <br>
Has dejado de responder <input size="3" id="blancos"> preguntas
<p>
PUNTUACIÓN: <input size="5" type="text" id="puntuacion" /> puntos
</form></p>
</body>
</html>

Por Albert Pandora

3 de clabLevel



Genero:Masculino  

Realizador-Montador-Cámara

chrome
Citar            
MensajeEscrito el 16 Abr 2013 01:52 am
Si abrieras la consola verías que te da un error muy claro
"Uncaught TypeError: Object #<HTMLFormElement> has no method 'getElementById' .html:70

Eso quiere decir que en la línea 70 estas llamando al método 'getElementById' inexistente de un objeto.

Si vas a la línea 70 tienes esto

Código Javascript :

document.resultado.getElementById('aciertos').value = aciertos;
document.resultado.getElementById('fallos').value = fallos;
document.resultado.getElementById('blancos').value = blancos;
document.resultado.getElementById('puntuacion').value = puntuacion;

El fallo viene por que document si tiene el método 'getElementById', sin embargo, el objeto document.resultado no lo tiene.

Un saludo

Por Abducted

Claber

489 de clabLevel

3 tutoriales

Genero:Masculino  

Mentalidad Renovada

chrome
Citar            
MensajeEscrito el 16 Abr 2013 07:32 am
Gracias por la respuesta, pero ya me disculpas no la acabo de entender.

He puesto en todo el código solo este texxto:
document.getElementByld" eliminando "resultado" y sigue sin funcionarme

y he probado con dejar en todo el código solo este texto:
"document.resultado" elimando "getElementByld" y tampoco.

¿que debo borrar o cambiar de palabras exactamente?

Muchas gracias, saludos!

Por Albert Pandora

3 de clabLevel



Genero:Masculino  

Realizador-Montador-Cámara

chrome
Citar            
MensajeEscrito el 16 Abr 2013 10:07 pm
Yo antes de testear tu código, tuve que arreglarle signos de puntuación que le faltaban, revísalo, como por ejemplo en las variables. A mi me funcionó sin cambiar nada del código, excepto el agregado de los signos de puntuación y la eliminación de los "document.resultado.getElementById" por "document.getElementById"

Un saludo.

Por Abducted

Claber

489 de clabLevel

3 tutoriales

Genero:Masculino  

Mentalidad Renovada

chrome
Citar            
MensajeEscrito el 17 Abr 2013 06:18 am
:) :) Muchas muchas gracias, lo revisaré a fondo y sobre todo el tema de "resultado".
Las prisas no son buena compañía, queda claro!

Saludos!!!!

Por Albert Pandora

3 de clabLevel



Genero:Masculino  

Realizador-Montador-Cámara

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.