Código Javascript:
Ver original
var aciertos = 0; var preguntas; var num_qst = 0; var seleccionadas = []; var nombre; var password; var remember; $(document).on("ready", function(){ if (localStorage.getItem("flag") == "set") { $("#name").val(localStorage.nombre); $("#pass").val(localStorage.pass); } $("#submit").on("click", function(e){ e.preventDefault(); credentialization(); }); $("#next").on("click", sig_qst); $("#back").on("click", regresa_qst); }); function credentialization(){ nombre = $("#name").val(); password = $("#pass").val(); if (!(nombre == "" || password == "")) { if (localStorage.getItem("flag") != "set") { localStorage["nombre"] = nombre; localStorage["pass"] = password; localStorage.setItem("flag", "set"); }else{ if (!(nombre == localStorage["nombre"] && password == localStorage["pass"])) { alert("Credenciales no identificables..."); }else { $.getJSON('preguntas.json', function(data){ preguntas = data.preguntas; alert("termino de cargar preguntas"); }).done(function(){ $("#back").prop("disabled", true); despliegue_qst(num_qst, seleccionadas); }); //inicio(); } } }else{ alert("Required field..."); } } function sig_qst(){ if (!($("input:checked").length)){ alert("No se ha seleccionado respuesta...") return; }else{ if(seleccionadas[num_qst]==undefined){ var a = $("input:checked"); seleccionadas.push(a[0].value); }else{ var a = $("input:checked"); seleccionadas[num_qst]= a[0].value; } } var sgt = ++num_qst; if(num_qst !=0){ $("#back").removeAttr('disabled'); } if(num_qst == preguntas.length){ despliegue_total(); $("#next").prop("disabled", true); return; } despliegue_qst(sgt, seleccionadas); } function regresa_qst(){ var ant = --num_qst; if(num_qst == 0){ $("#back").prop("disabled", true); } despliegue_qst(ant, seleccionadas); } function despliegue_qst(numQ, selQ){ $("#cuestionario").find('fieldset').empty().hide().fadeIn('slow'); $('#central').find('h1').text(preguntas[numQ].question); if(selQ[numQ]!=undefined){ for(var i=0; i<preguntas[numQ].choices.length; i++){ if(i == selQ[numQ]){ $("#cuestionario").find('fieldset') .append("<input type='radio' name='qst " + numQ + "' value='"+ i + "' checked>" + preguntas[numQ].choices[i] + "<br>"); }else{ $("#cuestionario").find('fieldset') .append("<input type='radio' name='qst " + numQ + "' value='"+ i + "'>" + preguntas[numQ].choices[i] + "<br>"); } } }else{ for(var i=0; i<preguntas[numQ].choices.length; i++){ $("#cuestionario").find('fieldset') .append("<input type='radio' name='qst " + numQ + "' value='"+ i + "'>" + preguntas[numQ].choices[i] + "<br>"); } } } function despliegue_total(){ $('#central').find('h1').text("Y tu número de aciertos fue..."); for(var i=0; i<preguntas.length; i++){ if(seleccionadas[i] == preguntas[i].correctAnswer){ aciertos++; } } $("#cuestionario").find('fieldset').empty().append("<h1>"+ aciertos + "</h1>"); }
Código HTML:
Ver original
<!DOCTYPE html> <html lang="es"> <head> <meta charset="utf-8"> <style type="text/css"> #central{ border: 1px solid #FDEFA1; border-radius: 5px; margin:auto auto; width: 65%; } </style> </head> <body> <div> <form action="#" id="login"> <input name="name" id="name" placeholder="Nombre" type="text"/> <input name="email" id="email" placeholder="E-mail" type="email"/> <input name="pass" id="pass" placeholder="Password" type="password"/> <br> <input type="submit" id="submit" value="Iniciar"/> </form> </div> <div id="central"> <form action="#" id="cuestionario"> <fieldset> </fieldset> <button id="next" value="Siguiente"/> <button id="back" value="Anterior"/> </form> </div> </body> </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