Qualtrics Javascript focus / select / 页面加载时将光标放在文本框上
Qualtrics Javascript focus / select / place cursor on text box when page loads
我正在尝试让 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();
}
});
});
有什么解决办法吗?谢谢!
您的代码的问题可能是 hideNextButton 和 addOnload 由于计时问题。请改用 addOnReady。此外,最好先检查 PreviousButton 是否存在。如果不存在,它将导致错误并停止您的脚本。在某些浏览器上,您必须 select 一个字段才能专注于它, 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();
});
我正在尝试让 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();
}
});
});
有什么解决办法吗?谢谢!
您的代码的问题可能是 hideNextButton 和 addOnload 由于计时问题。请改用 addOnReady。此外,最好先检查 PreviousButton 是否存在。如果不存在,它将导致错误并停止您的脚本。在某些浏览器上,您必须 select 一个字段才能专注于它, 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();
});