Mi objetivo es aleatorizar 10 elementos dentro de un bloque y luego hacer una serie de preguntas sobre el último elemento que se muestra. Conseguí que JS trabajara para la raíz del elemento, pero no para la opción de respuesta que se seleccionó.
Comienzo definiendo los datos incrustados al comienzo de la encuesta.
Luego, agrego JS para cada pregunta en el primer bloque. Etiquetarlos con el mismo nombre incrustado hace que Qualtrics sobrescriba los datos incrustados cada vez, lo que significa que recordará la última pregunta mostrada desde el primer bloque:
JS para Q1 (tenga en cuenta que llama a QID1):
Qualtrics.SurveyEngine.addOnload(function() { var text = "${q://QID1/QuestionText}"; Qualtrics.SurveyEngine.setEmbeddedData( 'TestQuestion', text ); var answer = "${q://QID1/ChoiceGroup/SelectedChoices}"; Qualtrics.SurveyEngine.setEmbeddedData( "TestAnswer", answer ); });
JS para Q2 (tenga en cuenta que llama a QID2):
Qualtrics.SurveyEngine.addOnload(function() { var text = "${q://QID2/QuestionText}"; Qualtrics.SurveyEngine.setEmbeddedData( 'TestQuestion', text ); var answer = "${q://QID2/ChoiceGroup/SelectedChoices}"; Qualtrics.SurveyEngine.setEmbeddedData( "TestAnswer", answer ); });
A continuación, llamo a los datos incrustados en el bloque posterior en las preguntas:
Sin embargo, cuando inicio la encuesta, solo muestra los metadatos de TestQuestion:
¿Qué estoy haciendo mal? ¿Cómo puedo obtener la opción de respuesta (datos incrustados de TestAnswer) para canalizar? ¿Debería agregarse en un lugar diferente en el JS?
También probé esto, pero no funcionó:
Qualtrics.SurveyEngine.addOnPageSubmit(function(type) { if(type == "next") {var answer = "${q://QID2/ChoiceGroup/SelectedChoices}"; Qualtrics.SurveyEngine.setEmbeddedData( "TestAnswer", answer );} });