Los condicionales de Javascript no funcionan con la combinación correcta de botones

Tengo 5 condiciones if else en la función getRadioButtonValue . La función no pasa por todas las condiciones incluso después de hacer clic en las combinaciones del botón derecho.

Intenté depurar la secuencia de comandos con las herramientas del desarrollador de Chrome, pero el problema persiste. ¿Dónde se está rompiendo el código?

Alguna información sobre la página, estoy usando Javascript para ocultar los div y los encabezados, de modo que en un momento dado solo se ve una pregunta.

Solo las primeras si las condiciones funcionan, pero nada más

Los resultados se ven luego de hacer clic en el botón Get Result en la última página que debe redirigirse a la página correspondiente.

[CÓDIGO ELIMINADO]

[CÓDIGO ACTUALIZADO]

No puedo ocultar automáticamente mi div basado en la respuesta dada a continuación por Keith. FYI: Su código funciona como se esperaba.

       .hidden { display: none; } .visible { display: block; margin: 0 auto; width: 650px; height: 445px; background: #EFDFBC; }    

How?

  • abc
  • def

var results = {}; function updateResult() { var r = results, rt = $('#result'); if (r.quiz-question-one && r.quiz-question-two && r.quiz-question-three && r.quiz-question-four && r.quiz-question-five) { rt.text('All Yes'); } else if (!r.quiz-question-one && !r.quiz-question-two && !r.quiz-question-three && !r.quiz-question-four && !r.quiz-question-five) { rt.text('All No'); } else { rt.text('We have a mixed response'); } } $(function () { $('body').on('click', '[name]', function () { var $this = $(this), page = $this.closest('.hidden'), next_page = $(page.next()); results[$this.attr('name')] = $(this).val() === 'yes'; page.removeClass('visible'); next_page.addClass('visible'); if (next_page.hasClass('result')) updateResult(); }); });

He creado un ejemplo a continuación del que creo que puedes trabajar. Los valores de la radio no creo que se actualicen hasta que envíe, en su lugar, he capturado los resultados en el clic. Ahora puede volver a agregar su estilo de CSS, etc. Espero que ayude.

 var results = {}; function updateResult() { var r = results, rt = $('#result'); if (r.q1 && r.q2 && r.q3) { rt.text('All Yes'); } else if (!r.q1 && !r.q2 && !r.q3) { rt.text('All No'); } else { rt.text('We have a mixed response'); } } $(function () { $('body').on('click', '[name]', function () { var $this = $(this), page = $this.closest('.page'), next_page = $(page.next()); results[$this.attr('name')] = $(this).val() === 'yes'; page.removeClass('active'); next_page.addClass('active'); if (next_page.hasClass('result')) updateResult(); }); }); 
 .page { display: none; } .page.active { display: block; } 
  
Question 1
Question 2
Question 3