25/06/2014, 10:52
|
| | Fecha de Ingreso: junio-2014
Mensajes: 1
Antigüedad: 10 años, 5 meses Puntos: 0 | |
Problema JS para cuestionario Estoy haciendo un cuestionario tipo test en html5 y JS, pero cuando pongo las funciones para que me aparezcan las respuestas correctas no aparecen. He cogido la plantilla de http://fcalzado.es/blog/tutorial-plantilla-cuestionario-con-evaluacion. En el ejemplo que da sí que funciona, pero puesto tal cual en mi test (es un poco diferente), no aparecen.
El original:
<script type="text/javascript"> <!-- var numPreg = 10; //*** numero de preguntas *** var numElecciones = 3; //*** numero de alternativas de respuesta *** var respCorrectas = new Array(numPreg); //*** entre parentesis el numero de preguntas *** respCorrectas[0] = "Texto de la respuesta correcta a la pregunta número 1"; respCorrectas[1] = "Texto de la respuesta correcta a la pregunta número 2"; respCorrectas[2] = "Texto de la respuesta correcta a la pregunta número 3"; respCorrectas[3] = "Texto de la respuesta correcta a la pregunta número 4"; respCorrectas[4] = "Texto de la respuesta correcta a la pregunta número 5"; respCorrectas[5] = "Texto de la respuesta correcta a la pregunta número 6"; respCorrectas[6] = "Texto de la respuesta correcta a la pregunta número 7"; respCorrectas[7] = "Texto de la respuesta correcta a la pregunta número 8"; respCorrectas[8] = "Texto de la respuesta correcta a la pregunta número 9"; respCorrectas[9] = "Texto de la respuesta correcta a la pregunta número 10"; //*** a partir de aqui no es necesario modificar el codigo *** function corregir(form) { var puntuacion = 0; var eleccActual; var currSelection; for (i=0; i<numPreg; i++) { eleccActual = i*numElecciones; for (j=0; j<numElecciones; j++) { currSelection = form.elements[eleccActual + j]; if (currSelection.checked) { if (currSelection.value == respCorrectas[i]) { puntuacion++; break; } } } } puntuacion = Math.round(puntuacion/numPreg*100); form.porcentaje.value = puntuacion + "%"; if (puntuacion > 99) {document.examen.nota.value = "Matrícula de Honor";} else if (puntuacion > 89) {document.examen.nota.value = "Sobresaliente";} else if (puntuacion > 79) {document.examen.nota.value = "Notable alto";} else if (puntuacion > 69) {document.examen.nota.value = "Notable bajo";} else if (puntuacion > 59) {document.examen.nota.value = "Bien";} else if (puntuacion > 49) {document.examen.nota.value = "Suficiente";} else {document.examen.nota.value = "Insuficiente";} var correctrespCorrectas = ""; for (i=1; i<=numPreg; i++) { correctrespCorrectas += i + ". " + respCorrectas[i-1] + "rn"; } form.soluciones.value = correctrespCorrectas; } // --> </script>
El mio:
<script type="text/javascript"> var numPreg = 50; var numElecciones = 4; var respCorrectas = new Array(50); respCorrectas[0] = "Casablanca"; respCorrectas[1] = "Tener y no tener"; respCorrectas[2] = "Lars Von Trier"; respCorrectas[3] = "Eyes Wide Shut"; respCorrectas[4] = "Algunos hombres buenos"; respCorrectas[5] = "Joker"; respCorrectas[6] = "Infiltrados"; respCorrectas[7] = "James Cameron"; respCorrectas[8] = "Jim Carrey"; respCorrectas[9] = "The Green Hornet"; respCorrectas[10] = "McLovin"; respCorrectas[11] = "Un parque de atracciones"; respCorrectas[12] = "Mark Zuckerberg"; respCorrectas[13] = "Béisbol"; respCorrectas[14] = "Economía"; respCorrectas[15] = "Malas tierras"; respCorrectas[16] = "Pacífico"; respCorrectas[17] = "Viggo Mortensen"; respCorrectas[18] = "Acordes y desacuerdos"; respCorrectas[19] = "Alvy Singer"; respCorrectas[20] = "Michael Corleone"; respCorrectas[21] = "Demencia 13"; respCorrectas[22] = "Julio Cortázar"; respCorrectas[23] = "Tomás Moro"; respCorrectas[24] = "Sed de mal"; respCorrectas[25] = "Frank Sinatra"; respCorrectas[26] = "Siete días de mayo"; respCorrectas[27] = "Deborah Kerr"; respCorrectas[28] = "De repente, el último verano"; respCorrectas[29] = "John Huston"; respCorrectas[30] = "¿Quieén teme a Virginia Woolf?"; respCorrectas[31] = "Anton Ego"; respCorrectas[32] = "¿Arde París?"; respCorrectas[33] = "Sophia Loren y Eleanora Brown"; respCorrectas[34] = "Giorgio Bassani"; respCorrectas[35] = "La caída de los dioses"; respCorrectas[36] = "Modesty Blaise, superagente femenino"; respCorrectas[37] = "Senderos de gloria"; respCorrectas[38] = "Un joven soñador provinciano"; respCorrectas[39] = "Leonard Cohen"; respCorrectas[40] = "Los amantes de la noche"; respCorrectas[41] = "El desprecio"; respCorrectas[42] = "Los pianos mecánicos"; respCorrectas[43] = "18.000"; respCorrectas[44] = "Shorty Rogers and His Giants"; respCorrectas[45] = "Peter Sellers"; respCorrectas[46] = "Gran Hotel"; respCorrectas[47] = "Desmontando a Harry"; respCorrectas[48] = "Leonard y Arthur"; respCorrectas[49] = "15"; function corregir(form) { var puntuacion = 0; var eleccActual; var currSelection; for (i=0; i<numPreg; i++) { eleccActual = i*numElecciones; for (j=0; j<numElecciones; j++) { currSelection = form.elements[eleccActual + j]; if (currSelection.checked) { if (currSelection.value == respCorrectas[i]) { puntuacion++; break; } } } } puntuacion = Math.round(puntuacion/numPreg*100); form.porcentaje.value = puntuacion + "%"; if (puntuacion > 99) {document.examen.nota.value = "Matrícula de Honor";} else if (puntuacion > 89) {document.examen.nota.value = "Sobresaliente";} else if (puntuacion > 79) {document.examen.nota.value = "Notable alto";} else if (puntuacion > 69) {document.examen.nota.value = "Notable bajo";} else if (puntuacion > 59) {document.examen.nota.value = "Bien";} else if (puntuacion > 49) {document.examen.nota.value = "Suficiente";} else {document.examen.nota.value = "Insuficiente";} var correctrespCorrectas = ""; for (i=1; i<=numPreg; i++) { respCorrectas+=i+ ". "+ espCorrectas[i-1]+"rn"; } form.soluciones.value=correct.respCorrectas; }
</script>
Podrían decirme por que no funciona? |