过去可以使用Qualtrics中的setChoiceValue方法让按键触发选择具有多项选择问题的特定选项。事实上,人们甚至可以看到单击按钮"点击"由于按下键盘上的给定键。现在不再是这种情况了,显然是由于Qualtrics最近的变化。 (对结果Qualtrics数据文件的检查显示没有设置选项值。)建议的一种解决方法是编写指示所选选项的嵌入数据,而不是setChoiceValue实际选择的选项。但是,该解决方法在问题位于具有随机排序的循环元素的循环 - 合并块内的情况下不起作用(因为选择选择需要在后面与循环内的相应元素匹配)。所以我的问题是,有没有办法在Qualtrics问题中让javascript模拟单击单选按钮,而不依赖于明显损坏的setChoiceValue方法?
编辑1/30/2018 - 回答我自己的问题(现在它已经在这里了,因为有人在我添加它之后将其删除了,如下所示)。 &#34 ;. 。 。这是我发现的。无论是使用addOnload还是addOnReady,该脚本都能正常工作。但有时会发生的是Qualtrics'问题'变得更改,以便选择标识符不再符合预期。即使将问题更改为描述性文本类型问题,然后将其更改回多项选择(以便重新创建Qualtrics的默认选项),也不一定能解决标识符问题。从头开始创建新块和新问题可以解决问题。"
Qualtrics.SurveyEngine.addOnload(function()
{
this.hideNextButton();
this.hidePreviousButton();
var that = this;
Event.observe(document, 'keydown', function keydownCallback(e) {
var choiceID = null;
switch (e.keyCode) {
case 74: // 'j' was pressed
choiceID = 1;
break;
case 75: // 'k' was pressed
choiceID = 2;
break;
}
if (choiceID) {
Event.stopObserving(document, 'keydown', keydownCallback);
that.setChoiceValue(choiceID, true);
that.clickNextButton();
}
});
});
答案 0 :(得分:0)
setChoiceValue工作正常。实际上,如果将addOnload更改为addOnReady,则脚本将正常工作。
对Qualtrics的更改与时间和按钮何时可用有关。使用addOnload,您的脚本会尝试在按钮可用之前隐藏按钮,这会因JS错误而暂停脚本。
答案 1 :(得分:0)
谢谢!但是,这是我发现的:
无论是使用addOnload还是addOnReady,脚本都能正常工作。但有时会发生什么,Qualtrics'问题'会被改变,以至于选择标识符不再符合预期。即使将问题更改为描述性文本类型问题,然后将其更改回多项选择(以便重新创建Qualtrics的默认选项),也不一定能解决标识符问题。从头开始创建新块和新问题可以解决问题。