Qualtrics: Transform piped variable using javascript and display it in text?

3.3k Views Asked by At

Let there be a piped variable in qualtrics (a variable holding values recalled from a previous input by a survey respondent), how do I transform it to lower-case before displaying it?

There is the java-script function .toLowerCase(); but how do I change a variable in the qualtrics custom javascript and pipe it back into a survey text?

This link explains how to use piped variables in javascript. Say I define a new variable in javascript like this

// my piped variable is ${q://QID12/ChoiceGroup/SelectedAnswers}"
var selectedChoice = "${q://QID12/ChoiceGroup/SelectedAnswers}";
var selectedChoiceLower = selectedChoice.toLowerCase();

How to pipe selectedChoiceLower back into a question text?

Any ideas?

1

There are 1 best solutions below

2
On BEST ANSWER

Use the setEmbeddedData() function to assign selectedChoiceLower to a new or existing embedded data variable (see documentation). Then, you can use the embedded field variable in a later question.

javascript: setEmbeddedData('lower', selectedChoiceLower);

embedded field code: ${e://Fields/lower}

warning: putting user-generated text into your javascript is very dangerous! Qualtrics does not do any escaping. If a user puts a ' or " in their text, it will be put directly into the javascript and probably break your code. Code injection is also possible. See this question for more details.