页面加载时Qualtrics Javascript焦点/选择/将光标放在文本框上
我试图让Qualtrics自动关注文本框(每页一个问题),这样参与者就可以立即开始打字 我尝试过与其他答案不同的东西(例如),但这种关注在IE等浏览器上不起作用(Firefox,不包含代码,自动关注问题) 该代码似乎也会通过按“回车”(如下)使进入下一页的代码无效,因此调查会停留在页面上页面加载时Qualtrics Javascript焦点/选择/将光标放在文本框上,javascript,qualtrics,Javascript,Qualtrics,我试图让Qualtrics自动关注文本框(每页一个问题),这样参与者就可以立即开始打字 我尝试过与其他答案不同的东西(例如),但这种关注在IE等浏览器上不起作用(Firefox,不包含代码,自动关注问题) 该代码似乎也会通过按“回车”(如下)使进入下一页的代码无效,因此调查会停留在页面上 Qualtrics.SurveyEngine.addOnload(function() { this.hideNextButton(); this.hidePreviousButton(); var th
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();
}
});
});
有没有办法解决这个问题?谢谢大家! 由于计时问题,代码的问题可能是带有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();
});
谢谢你的回答!这很有效。然而,我要说的是,当我试图清除所有以前的Javascript并将其插入到我之前进行的调查中时,它没有起作用。我必须创建一个新的调查,它才能工作。。不知道Qualtrics为什么这么做。