Ver Mensaje Individual
  #3 (permalink)  
Antiguo 25/06/2014, 20:28
Avatar de Italico76
Italico76
 
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 8 meses
Puntos: 292
Respuesta: Problema JS para cuestionario

Bueno... y donde esta el FORM ? o sea falta el HTML sobre el que funciona corregir() ... imposible debuguear asi

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.    
  3.     var numPreg = 50;
  4.     var numElecciones = 4;  
  5.    
  6.     var respCorrectas = new Array(50);
  7.    
  8.     respCorrectas[0] = "Casablanca";
  9.     respCorrectas[1] = "Tener y no tener";
  10.     respCorrectas[2] = "Lars Von Trier";
  11.     respCorrectas[3] = "Eyes Wide Shut";
  12.     respCorrectas[4] = "Algunos hombres buenos";
  13.     respCorrectas[5] = "Joker";
  14.     respCorrectas[6] = "Infiltrados";
  15.     respCorrectas[7] = "James Cameron";
  16.     respCorrectas[8] = "Jim Carrey";
  17.     respCorrectas[9] = "The Green Hornet";
  18.     respCorrectas[10] = "McLovin";
  19.     respCorrectas[11] = "Un parque de atracciones";
  20.     respCorrectas[12] = "Mark Zuckerberg";
  21.     respCorrectas[13] = "Béisbol";
  22.     respCorrectas[14] = "Economía";
  23.     respCorrectas[15] = "Malas tierras";
  24.     respCorrectas[16] = "Pacífico";
  25.     respCorrectas[17] = "Viggo Mortensen";
  26.     respCorrectas[18] = "Acordes y desacuerdos";
  27.     respCorrectas[19] = "Alvy Singer";
  28.     respCorrectas[20] = "Michael Corleone";
  29.     respCorrectas[21] = "Demencia 13";
  30.     respCorrectas[22] = "Julio Cortázar";
  31.     respCorrectas[23] = "Tomás Moro";
  32.     respCorrectas[24] = "Sed de mal";
  33.     respCorrectas[25] = "Frank Sinatra";
  34.     respCorrectas[26] = "Siete días de mayo";
  35.     respCorrectas[27] = "Deborah Kerr";
  36.     respCorrectas[28] = "De repente, el último verano";
  37.     respCorrectas[29] = "John Huston";
  38.     respCorrectas[30] = "¿Quieén teme a Virginia Woolf?";
  39.     respCorrectas[31] = "Anton Ego";
  40.     respCorrectas[32] = "¿Arde París?";
  41.     respCorrectas[33] = "Sophia Loren y Eleanora Brown";
  42.     respCorrectas[34] = "Giorgio Bassani";
  43.     respCorrectas[35] = "La caída de los dioses";
  44.     respCorrectas[36] = "Modesty Blaise, superagente femenino";
  45.     respCorrectas[37] = "Senderos de gloria";
  46.     respCorrectas[38] = "Un joven soñador provinciano";
  47.     respCorrectas[39] = "Leonard Cohen";
  48.     respCorrectas[40] = "Los amantes de la noche";
  49.     respCorrectas[41] = "El desprecio";
  50.     respCorrectas[42] = "Los pianos mecánicos";
  51.     respCorrectas[43] = "18.000";
  52.     respCorrectas[44] = "Shorty Rogers and His Giants";
  53.     respCorrectas[45] = "Peter Sellers";
  54.     respCorrectas[46] = "Gran Hotel";
  55.     respCorrectas[47] = "Desmontando a Harry";
  56.     respCorrectas[48] = "Leonard y Arthur";
  57.     respCorrectas[49] = "15";
  58.  
  59.     function corregir(form)
  60.     {
  61.         var puntuacion = 0;
  62.         var eleccActual;
  63.         var currSelection;
  64.         for (i = 0; i < numPreg; i++) {
  65.             eleccActual = i * numElecciones;
  66.             for (j = 0; j < numElecciones; j++) {
  67.                 currSelection = form.elements[eleccActual + j];
  68.                 if (currSelection.checked) {
  69.                     if (currSelection.value == respCorrectas[i]) {
  70.                         puntuacion++;
  71.                         break;
  72.                     }
  73.                 }
  74.             }
  75.         }
  76.         puntuacion = Math.round(puntuacion / numPreg * 100);
  77.         form.porcentaje.value = puntuacion + "%";
  78.         if (puntuacion > 99) {
  79.             document.examen.nota.value = "Matrícula de Honor";
  80.         } else if (puntuacion > 89) {
  81.             document.examen.nota.value = "Sobresaliente";
  82.         } else if (puntuacion > 79) {
  83.             document.examen.nota.value = "Notable alto";
  84.         } else if (puntuacion > 69) {
  85.             document.examen.nota.value = "Notable bajo";
  86.         } else if (puntuacion > 59) {
  87.             document.examen.nota.value = "Bien";
  88.         } else if (puntuacion > 49) {
  89.             document.examen.nota.value = "Suficiente";
  90.         } else {
  91.             document.examen.nota.value = "Insuficiente";
  92.         }
  93.         var correctrespCorrectas = "";
  94.         for (i = 1; i <= numPreg; i++) {
  95.             respCorrectas += i + ". " + espCorrectas[i - 1] + "rn";
  96.         }
  97.         form.soluciones.value = correct.respCorrectas;
  98.     }
  99.        
  100. </script>

Desde ya que la forma de ingresar datos a ese array es para morirse de la angustia:


Cita:
respCorrectas[2] = "Lars Von Trier";
respCorrectas[3] = "Eyes Wide Shut";
...
respCorrectas[28] = "De repente, el último verano";
respCorrectas[29] = "John Huston";
Yo las ingresaria asi:

Código Javascript:
Ver original
  1. respCorrectas = [
  2.     "Tener y no tener",
  3.     "Lars Von Trier",
  4.     "Eyes Wide Shut"];

Bueno... la lista sigue... pero se entiende


PD: me toco usar jsBeautifier ... sino me volvia chino
__________________
Salu2!

Última edición por Italico76; 25/06/2014 a las 20:35