Cuenco
Cuenco

Reputation: 83

Qualtrics: Loop over embedded data fields?

I have a large set of embedded data fields that are called rnd1, rnd2, rnd3 etc. In a certain question block, I stored to each of these a certain value (each a different random number).

I also have a Loop and Merge question block, and in each round, I would like to access the stored data of a different field (i.e. in the 1st round I'd like to access whatever is in rnd1, in the 2nd round access rnd2 etc.) Can this be done in Qualtrics?

I tried something like:

Qualtrics.SurveyEngine.addOnload(function()
{
 var trialNum = this.questionId.split('_')[0]; // getting the loop's current round number 
 var EDname = "rnd"+trialNum; // name of desired EF field
 var rndNum = "${e://Field/" + EDname + "}"; // this is where I'd like stored the right ED value

// some more code that uses rndNum

});

but this does not work. It seems that while EDname gets the right string, I cannot access the value of that embedded field this way (though var rndNum = "${e://Field/rnd1} does work and returns the right value, so the problem seems to be in the looping strucutre).

If I cannot loop over the different fields in the JS code for some reason, is there another clever way to get that done in Qualtrics? For example, I thought it may be possible to use the different field names in the Loop and Merge section as "Field 2", but this seem to require me setting manually each and every ED field name.

Thanks.

Upvotes: 3

Views: 880

Answers (1)

T. Gibbons
T. Gibbons

Reputation: 5004

Piped embedded data fields are resolved on the server before the page gets sent to your browser. So, it is impossible to dynamically create an embedded data field name and resolve it on the client side with JavaScript.

The way you are doing it with a loop & merge field is the best way.

Upvotes: 1

Related Questions