Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var choicesObject = this.getQuestionInfo().Choices;
- //choices is the array of choiceids
- var choices = Object.keys(choicesObject);
- var Qno = choices.length;
- var test = ['this', 'is', 'rad'];
- for (var x = 0; x < Qno; x++) {
- var id = choices[x];
- //var y = id + 1;
- var qid = "QID12-" + id + "-label";
- document.getElementById(qid).innerHTML = test[x];
- }
- // This works
- // hide next button
- $('NextButton') && $('NextButton').hide();
- // store rank in first column, description in second column of array "choice"
- // le was saved as embedded data from Rank question to inform the current code how many choices to loop through
- var le = '${e://Field/gp1length}';
- var len = parseInt(le);
- var choiceArray = [];
- // create blank 2D array containing descriptions and rank orders
- for (var x = 0; x < len; x++) {
- choiceArray[x] = [];
- for (var y = 0; y < 2; y++) {
- choiceArray[x][y] = 0;
- }
- }
- // this does not work, the array contains NaNs
- for (var x = 0; x < len; x++) {
- var y = x + 1;
- var rank = "${q://QID11/ChoiceNumericEntryValue/x" + y + "}";
- var desc = "${q://QID11/ChoiceDescription/x" + y + "}";
- choiceArray[x][0] = parseInt(rank);
- choiceArray[x][1] = desc;
- }
- // attempt to sort array by rank order column
- choiceArray = choiceArray.sort(function(a, b) {
- return a[0] - b[0];
- });
- for (var x = 0; x < len; x++) {
- var y = x + 1;
- var name = "gp1r" + y;
- Qualtrics.SurveyEngine.setEmbeddedData(name, choiceArray[x][1]);
- }
- // advance to next screen
- this.clickNextButton();
- Qualtrics.SurveyEngine.addOnload(function() {
- var ranks = [
- {"choice":"xx1", "rank": parseInt("${q://QID68/ChoiceNumericEntryValue/x1}")},
- {"choice":"xx2", "rank": parseInt("${q://QID68/ChoiceNumericEntryValue/x2}")},
- {"choice":"xx3", "rank": parseInt("${q://QID68/ChoiceNumericEntryValue/x3}")},
- {"choice":"xx4", "rank": parseInt("${q://QID68/ChoiceNumericEntryValue/x4}")},
- {"choice":"xx5", "rank": parseInt("${q://QID68/ChoiceNumericEntryValue/x5}")},
- ];
- var tbody = jQuery("#"+this.questionId+" div.ChoiceStructure > table.sliderGrid > tbody"); //slider container
- jQuery.each(ranks, function(index) { if(isNaN(this["rank"])) ranks.splice(index, 1); }); //remove NaNs
- ranks.sort(function(a,b) { return a.rank - b.rank; }); //sort by rank
- jQuery.each(ranks, function() {
- tbody.append(tbody.find("tr[choiceid="+this["choice"]+"]")); //order sliders
- });
- });
Add Comment
Please, Sign In to add comment