Any reason that this code wouldn't work:
Qualtrics.SurveyEngine.addOnload(function ()
{
var that = this;
that.questionclick = function (event,element) {
setTimeout(function () {
var answer = that.getSelectedChoices()[0];
switch(answer) {
case 1:
case 2:
case 8:
case 9:
Qualtrics.SurveyEngine.setEmbeddedData('Sign' ,'$');
break;
case 3:
Qualtrics.SurveyEngine.setEmbeddedData('Sign' , '£');
break;
case 4:
Qualtrics.SurveyEngine.setEmbeddedData('Sign' , '€');
break;
}
}, 100);
}
});
But this codes does:
Qualtrics.SurveyEngine.addOnload(function ()
{
var that = this;
that.questionclick = function (event,element) {
setTimeout(function () {
var answer = that.getSelectedChoices()s0];
if (answer == 1) {
Qualtrics.SurveyEngine.setEmbeddedData('Sign' ,'$');
} else if (answer == 2) {
Qualtrics.SurveyEngine.setEmbeddedData('Sign' , '$');
}
else if (answer == 3) {
Qualtrics.SurveyEngine.setEmbeddedData('Sign' , '£');
}
else if (answer == 4) {
Qualtrics.SurveyEngine.setEmbeddedData('Sign' , '€');
}
else if (answer == {
Qualtrics.SurveyEngine.setEmbeddedData('Sign' , '$');
}
else if (answer == 9) {
Qualtrics.SurveyEngine.setEmbeddedData('Sign' , '$');
}
}, 100);
}
});
Page 1 / 1
Since I can't delete the post, it has to do with the fact the switch statement uses strict comparison while the if statement (==) doesn't. I didn't realize that the qualtrics method
`getSelectedChoices()` returns a string and not an integer. Wrapping parseInt() i.e `parseInt(that.getSelectedChoices()[0], 10);` fixed the issue.
`getSelectedChoices()` returns a string and not an integer. Wrapping parseInt() i.e `parseInt(that.getSelectedChoices()[0], 10);` fixed the issue.
Leave a Reply
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.