过去可以在Qualtrics中设置chChoiceValue。是否存在不涉及嵌入数据的变通方法?

时间:2018-01-20 04:56:11

标签: qualtrics

过去可以使用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();
  }
});
});

2 个答案:

答案 0 :(得分:0)

setChoiceValue工作正常。实际上,如果将addOnload更改为addOnReady,则脚本将正常工作。

对Qualtrics的更改与时间和按钮何时可用有关。使用addOnload,您的脚本会尝试在按钮可用之前隐藏按钮,这会因JS错误而暂停脚本。

答案 1 :(得分:0)

谢谢!但是,这是我发现的:

无论是使用addOnload还是addOnReady,脚本都能正常工作。但有时会发生什么,Qualtrics'问题'会被改变,以至于选择标识符不再符合预期。即使将问题更改为描述性文本类型问题,然后将其更改回多项选择(以便重新创建Qualtrics的默认选项),也不一定能解决标识符问题。从头开始创建新块和新问题可以解决问题。