Foros del Web » Programando para Internet » Jquery »

Js pequeña app a veces funciona

Estas en el tema de Js pequeña app a veces funciona en el foro de Jquery en Foros del Web. Que tal maestros, les cuento mi problema, estoy haciendo un pequeño ejercicio de un cuestionario en js, ya lo había terminado y funcionaba a la ...
  #1 (permalink)  
Antiguo 12/09/2013, 14:39
 
Fecha de Ingreso: diciembre-2007
Ubicación: Frente al ordenador...
Mensajes: 139
Antigüedad: 17 años
Puntos: 1
Js pequeña app a veces funciona

Que tal maestros, les cuento mi problema, estoy haciendo un pequeño ejercicio de un cuestionario en js, ya lo había terminado y funcionaba a la perfección...ahora desde que le incluí bootstrap no me funcionaba correctamente, quite bootstrap pensando que sería eso y no, sigue sin funcionar... son contadas las veces que funciona a veces a la primer vez...y el error surge en que no hace display en una función que llamo, en el debug si la hace pero al terminar la función puff...se sale y me resetea la página.
Código Javascript:
Ver original
  1. var aciertos = 0;
  2. var preguntas;
  3. var num_qst = 0;
  4. var seleccionadas = [];
  5. var nombre;
  6. var password;
  7. var remember;
  8.  
  9. $(document).on("ready", function(){
  10.  
  11.     if (localStorage.getItem("flag") == "set") {
  12.         $("#name").val(localStorage.nombre);
  13.         $("#pass").val(localStorage.pass);
  14.     }
  15.  
  16.     $("#submit").on("click", function(e){
  17.         e.preventDefault();
  18.         credentialization();
  19.     });
  20.  
  21.     $("#next").on("click", sig_qst);
  22.     $("#back").on("click", regresa_qst);
  23.  
  24. });
  25.  
  26. function credentialization(){
  27.     nombre = $("#name").val();
  28.     password = $("#pass").val();
  29.  
  30.     if (!(nombre == "" || password == "")) {
  31.         if (localStorage.getItem("flag") != "set") {
  32.             localStorage["nombre"] = nombre;
  33.             localStorage["pass"] = password;
  34.             localStorage.setItem("flag", "set");
  35.         }else{
  36.             if (!(nombre == localStorage["nombre"] && password == localStorage["pass"])) {
  37.                 alert("Credenciales no identificables...");
  38.             }else {
  39.                 $.getJSON('preguntas.json', function(data){
  40.                     preguntas = data.preguntas;
  41.                     alert("termino de cargar preguntas");
  42.                 }).done(function(){
  43.                         $("#back").prop("disabled", true);
  44.                         despliegue_qst(num_qst, seleccionadas);
  45.                     });
  46.                 //inicio();
  47.             }
  48.         }
  49.     }else{
  50.         alert("Required field...");
  51.     }
  52. }
  53.  
  54. function sig_qst(){
  55.     if (!($("input:checked").length)){
  56.         alert("No se ha seleccionado respuesta...")
  57.         return;
  58.     }else{
  59.         if(seleccionadas[num_qst]==undefined){
  60.             var a = $("input:checked");
  61.             seleccionadas.push(a[0].value);
  62.         }else{
  63.             var a = $("input:checked");
  64.             seleccionadas[num_qst]= a[0].value;
  65.         }
  66.     }
  67.  
  68.     var sgt = ++num_qst;
  69.  
  70.     if(num_qst !=0){
  71.         $("#back").removeAttr('disabled');
  72.     }
  73.  
  74.     if(num_qst == preguntas.length){
  75.         despliegue_total();
  76.         $("#next").prop("disabled", true);
  77.         return;
  78.     }
  79.     despliegue_qst(sgt, seleccionadas);
  80. }
  81.  
  82. function regresa_qst(){
  83.     var ant = --num_qst;
  84.  
  85.     if(num_qst == 0){
  86.         $("#back").prop("disabled", true);
  87.     }
  88.  
  89.     despliegue_qst(ant, seleccionadas);
  90. }
  91.  
  92. function despliegue_qst(numQ, selQ){
  93.     $("#cuestionario").find('fieldset').empty().hide().fadeIn('slow');
  94.     $('#central').find('h1').text(preguntas[numQ].question);
  95.  
  96.     if(selQ[numQ]!=undefined){
  97.         for(var i=0; i<preguntas[numQ].choices.length; i++){
  98.             if(i == selQ[numQ]){
  99.                 $("#cuestionario").find('fieldset')
  100.                     .append("<input type='radio' name='qst " + numQ + "' value='"+ i + "' checked>" + preguntas[numQ].choices[i] + "<br>");
  101.  
  102.             }else{
  103.                 $("#cuestionario").find('fieldset')
  104.                     .append("<input type='radio' name='qst " + numQ + "' value='"+ i + "'>" + preguntas[numQ].choices[i] + "<br>");
  105.             }
  106.  
  107.         }
  108.  
  109.     }else{
  110.         for(var i=0; i<preguntas[numQ].choices.length; i++){
  111.             $("#cuestionario").find('fieldset')
  112.                 .append("<input type='radio' name='qst " + numQ + "' value='"+ i + "'>" + preguntas[numQ].choices[i] + "<br>");
  113.         }
  114.     }
  115. }
  116.  
  117. function despliegue_total(){
  118.     $('#central').find('h1').text("Y tu número de aciertos fue...");
  119.  
  120.     for(var i=0; i<preguntas.length; i++){
  121.         if(seleccionadas[i] == preguntas[i].correctAnswer){
  122.             aciertos++;
  123.         }
  124.     }
  125.  
  126.     $("#cuestionario").find('fieldset').empty().append("<h1>"+ aciertos + "</h1>");
  127. }

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <html lang="es">
  3.     <meta charset="utf-8">
  4.     <title>Quiz Application</title>
  5.     <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
  6.     <style type="text/css">
  7.         #central{
  8.             border: 1px solid #FDEFA1;
  9.             border-radius: 5px;
  10.             margin:auto auto;
  11.             width: 65%;
  12.         }
  13.  
  14.     </style>
  15. </head>
  16.  
  17.         <div>
  18.             <legend>Ingresa tus datos para comenzar</legend>
  19.             <form action="#" id="login">
  20.                 <input name="name"  id="name" placeholder="Nombre" type="text"/>
  21.                 <input name="email" id="email" placeholder="E-mail" type="email"/>
  22.                 <input name="pass" id="pass" placeholder="Password" type="password"/>
  23.                 <br>
  24.                 <input type="submit" id="submit" value="Iniciar"/>
  25.             </form>
  26.         </div>
  27.  
  28.  
  29.         <div id="central">
  30.             <h1>Pregunta...</h1>
  31.  
  32.             <form action="#" id="cuestionario">
  33.                 <fieldset>
  34.                 </fieldset>
  35.                 <button id="next" value="Siguiente"/>
  36.                 <button id="back" value="Anterior"/>
  37.             </form>
  38.         </div>
  39.  
  40. <script type="text/javascript" src="cuest.js"></script>
  41.  
  42. </body>
  43. </html>

El error surge en el botón de Siguiente a veces en el primer click...ya no muestra display...otras veces el error es en el botón de Anterior...igual hace lo mismo...y cuando debuggeo...si surge error en cualquiera de los botones me resetea la página.
Muchas gracias de antemano
__________________
----------------------------------------------------------
Algunas cosas simplemente son bellas...por que uno no puede tenerlas...

Etiquetas: boton, javascript
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:20.