Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Qualtrics中实现多页计时器_Javascript_Timer_Qualtrics - Fatal编程技术网

Javascript 在Qualtrics中实现多页计时器

Javascript 在Qualtrics中实现多页计时器,javascript,timer,qualtrics,Javascript,Timer,Qualtrics,对于我正在进行的一个研究项目,我正在尝试在Qualtrics上使用Javascript功能实现一个计时器,它将跟踪时间并在多个页面上向主题显示时间 我的代码的总体思想是跟踪多个页面上的定时倒计时。也就是说,我有一系列任务,每个任务都在一个单独的页面上,但在同一个块中,我想显示每次加载新页面时剩余的时间 为此,首先我定义了几个嵌入式数据字段“timeleftrounded”和“start time”,并将值留待以后指定 其次,我将下面的代码放在最后一个问题上,直接放在我希望计时器启动的页面之前。我

对于我正在进行的一个研究项目,我正在尝试在Qualtrics上使用Javascript功能实现一个计时器,它将跟踪时间并在多个页面上向主题显示时间

我的代码的总体思想是跟踪多个页面上的定时倒计时。也就是说,我有一系列任务,每个任务都在一个单独的页面上,但在同一个块中,我想显示每次加载新页面时剩余的时间

为此,首先我定义了几个嵌入式数据字段“timeleftrounded”和“start time”,并将值留待以后指定

其次,我将下面的代码放在最后一个问题上,直接放在我希望计时器启动的页面之前。我的目的是让这段代码在当前时间内读取,以定义嵌入的数据“开始时间”

在下一页,我的任务开始了,因为我希望主题总共有40分钟,所以我只写了“40分钟”,不需要代码。但在这个问题上,我有更多的代码,可以计算单击按钮加载下一页时剩余的时间(以分钟为单位)

    Qualtrics.SurveyEngine.addOnload(function()
{
    Event.observe($('NextButton'), 'click', function () 
{ 
        var timeleftrounded = (2400000- (Date.now() - Number("${e://Field/start_time}")))/60000;    
    Qualtrics.SurveyEngine.setEmbeddedData("timeleftrounded",timeleftrounded);  
        });
    });
下一页使用以下代码将此变量“timeleftrounded”四舍五入到第一个小数点,并显示给主题

$e{ round(e://Field/timeleftrounded , 1) }
我的困惑开始于此:虽然当我使用“视图块…”功能时,此代码正常工作,但当我使用完整调查预览模式或启动调查(我制作了一份副本)时,计时器不工作——除非我对问题给出错误答案,否则它只会显示“0”。每一页都有一个带有验证检查的问题,一旦我至少给出一次错误答案,计时器就会再次工作,但如果我只给出正确答案,计时器就永远不会工作


希望我遗漏了一些明显的东西,但我在网上找不到解决方案,所以我想这可能是其他人也感兴趣的东西

在“下一步”按钮上添加事件侦听器通常不起作用,因为Qualtrics在“下一步”按钮上有自己的事件侦听器

我将建议一种更简单的方法。使用内置嵌入式变量Q_TotalDuration,该变量始终以秒为单位显示调查的当前总持续时间

在调查流程中,在计时问题开始之前:

start_time = ${e://Field/Q_TotalDuration}
标题中的HTML:

<div id="timeLeft" style="text-align:right"></div>

在“下一步”按钮上添加事件侦听器通常不起作用,因为Qualtrics在“下一步”按钮上有自己的事件侦听器

我将建议一种更简单的方法。使用内置嵌入式变量Q_TotalDuration,该变量始终以秒为单位显示调查的当前总持续时间

在调查流程中,在计时问题开始之前:

start_time = ${e://Field/Q_TotalDuration}
标题中的HTML:

<div id="timeLeft" style="text-align:right"></div>