Tengo una pregunta de opción múltiple (Sí/No) donde Sí se correlaciona con una puntuación de 0 y No se correlaciona con una puntuación de 1. He usado la función "Recodificar valores" para establecer Sí en 0 y No en 1. Esto es dentro de un bucle/bloque de combinación, por lo que no puedo usar la función de puntuación o datos incrustados/ramificaciones en Survey Flow.
Mi código actualmente se ve así:
Qualtrics.SurveyEngine.addOnPageSubmit(function() { var answer = jQuery("#"+this.questionId+".q-checked").val(); Qualtrics.SurveyEngine.setEmbeddedData('answer', answer); if(answer = 0) Qualtrics.SurveyEngine.setEmbeddedData('mmm', '0'); if(answer = 1) Qualtrics.SurveyEngine.setEmbeddedData('mmm', '1'); });También he probado:
Qualtrics.SurveyEngine.addOnPageSubmit(function() { var answer = this.questionContainer.querySelector(".q-checked").nextElementSibling.innerText; Qualtrics.SurveyEngine.setEmbeddedData('answer', answer); if(answer = 0) Qualtrics.SurveyEngine.setEmbeddedData('mmm', '0'); if(answer = 1) Qualtrics.SurveyEngine.setEmbeddedData('mmm', '1'); });Dentro del mismo bloque después de esta pregunta, tengo un salto de página y luego dos preguntas con lógica de visualización. Si responde Sí/obtiene una puntuación de 0 en la pregunta preliminar, debería mostrar la Pregunta A. Si responde No/obtiene una puntuación de 1 en la pregunta preliminar, debería mostrar la Pregunta B.
Mi código parece establecer su puntaje en 1 y mostrar la Pregunta B sin importar si responden Sí o No a la pregunta preliminar.
Gracias de antemano por cualquier ayuda.
Hay tres problemas con su código. La primera es que le falta un espacio antes de .q-checked en su selector de jQuery. Debería ser:
var answer = jQuery("#"+this.questionId+" .q-checked").val();El segundo problema es que el valor (choiceid) no es lo mismo que la recodificación. Puede usar los ID de elección (probablemente 1 = Sí y 2 = No) o usar la API JS de Qualtrics para obtener la recodificación asociada con el valor.
El tercer problema es que sus comparaciones son incorrectas. Deberían verse como:
if(answer == "0")