Qualtrics Javascript在页面加载时将焦点/选择/放置在文本框上

时间:2017-11-05 03:06:10

标签: javascript qualtrics

我正在尝试使Qualtrics自动关注文本框(每页一个问题),以便参与者可以立即开始输入。

我尝试过与其他答案不同的东西(例如,Qualtrics: Automatic blinking cursor (focus) does not work on JFE, only on SE surveybuilder),但焦点不适用于IE等浏览器(Firefox,不包括代码,自动关注问题)。

代码似乎也无法通过按“Enter”(下方)使进入下一页的代码无效,因此调查卡在页面上

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 13: // 'enter' was pressed
    choiceID = 1;
    break;
  }

  if (choiceID) {
   Event.stopObserving(document, 'keydown', keydownCallback);
   that.clickNextButton();
  }
 });
});

任何想法如何解决这个问题?谢谢!

1 个答案:

答案 0 :(得分:1)

由于时间问题,代码的问题可能是带有addOnload的hideNextButton。请改用addOnReady。此外,最好首先检查PreviousButton的存在。如果不存在则会导致错误并停止脚本。在某些浏览器上,您必须先选择一个字段才能关注它,activate()会这样做。最后,最好将事件处理程序添加到文本字段,而不是文档。

试试这个:

Qualtrics.SurveyEngine.addOnReady(function()
{
 $('NextButton').hide();
 if($('PreviousButton')) $('PreviousButton').hide();
 var inputText = $(this.questionId).down('.InputText');
 var evt = inputText.on('keydown', function(e) {
   if(e.which == 13) {
     evt.stop();    
     $('NextButton').click();
   }
 });
 inputText.activate();
});