在Qualtrics中,如何将密钥响应保存到嵌入式数据中?

在Qualtrics中,如何将密钥响应保存到嵌入式数据中?,qualtrics,Qualtrics,我有下面列出的代码。这是Qualtrics支持团队在更新系统之前推荐的代码。在这段代码中,您删除“下一步”按钮,让参与者用按键回答,例如J或K Qualtrics.SurveyEngine.addOnload(function() { this.hideNextButton(); this.hidePreviousButton(); var that = this; Event.observe(document, 'keydown', function keydownCallback(e) {

我有下面列出的代码。这是Qualtrics支持团队在更新系统之前推荐的代码。在这段代码中,您删除“下一步”按钮,让参与者用按键回答,例如J或K

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();
 }


});

});
我还从测量流部分创建了一个名为“choiceID”的嵌入式数据。我可以在我的最终结果中看到这个新专栏

我想将响应键信息(J作为choiceID=1或K作为choiceID=2)作为嵌入数据发送到结果

我正在集成下面的代码,这似乎不起作用

Qualtrics.SurveyEngine.setEmbeddedData("choiceID",choiceID);

这是工作版本

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) {     
Qualtrics.SurveyEngine.setEmbeddedData("choiceID",choiceID);
Event.stopObserving(document, 'keydown', keydownCallback);
that.setChoiceValue(choiceID, true);
that.clickNextButton();
}

});

});

我认为您不需要实现嵌入式数据来查看数据文件中按键的结果(请参阅)。以下内容适合我

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();
  }
});
});

您的代码看起来是正确的。setEmbeddedData行应位于if(choiceID)内部。嵌入式数据字段将与问题答案冗余。谢谢!事实上,在清理了一些打字错误后,它现在开始工作了。