需要创建用于根据包含给定数字的数组分配集合选择值的函数

时间:2016-09-01 21:35:14

标签: javascript qualtrics

我是JavaScript新手......所以请耐心等待......

我正在尝试使用JavaScript预先填充参与者在调查中早期提出的多项选择问题的答案。请注意,我的变量“Legchoice”将采用通过管道输入的值。但是,可以有多个值,因为受访者可以为要传输的问题选择多个答案。我知道我的脚本询问“LegChoice”是否等于给定的数字....我如何更改它“LegChoice”包含给定的数字。如果被访者选择对应于值1和1的答案,该怎么办? 3这样我就可以设置选择值4,5,6,7,8,9。或者如果他们选择对应于2& 4?我希望这是有道理的。

谢谢!

var LegChoice = "${q://QID23/SelectedChoicesRecode}";
var LegChoice = parseInt(LegChoice);


    if (LegChoice==1) {
    this.setChoiceValue(4,true);
    this.setChoiceValue(5,true);
    this.setChoiceValue(6,true);
    this.setChoiceValue(7,true);
}

if (LegChoice== 2) {
    this.setChoiceValue(4,true);
    this.setChoiceValue(5,true);
    this.setChoiceValue(6,true);
    this.setChoiceValue(7,true);
}

if (LegChoice==3) {
    this.setChoiceValue(6,true);
    this.setChoiceValue(8,true);
    this.setChoiceValue(9,true);
}

if (LegChoice == 4) {
    this.setChoiceValue(1,true);
    this.setChoiceValue(3,true);
}

1 个答案:

答案 0 :(得分:1)

您需要将LegChoice拆分为单独的答案,然后循环播放它们。

var LegChoices = "${q://QID23/SelectedChoicesRecode}";
var that = this;
LegChoices.split(",").each(function(LegChoice,index) {
    var LegChoice = parseInt(LegChoice.trim());
    if (LegChoice==1) {
        that.setChoiceValueByRecodeValue(4,true);
        that.setChoiceValueByRecodeValue(5,true);
        that.setChoiceValueByRecodeValue(6,true);
        that.setChoiceValueByRecodeValue(7,true);
    }

    //etc...

});

注意:如果要使用重新编码值进行管道传输,则需要按重新编码值设置。