Skip to main content
 首页 » 编程设计

javascript之过早退出 Qualtrics 中的循环和合并 block

2024年02月27日10shihaiming

我目前正在进行一项 Qualtrics 调查,受访者必须解决一长串字谜问题,然后回答一些人口统计问题。

为了使字谜部分更容易,我使用了循环和合并 block :第一个字段是要解决的字谜,第二个字段是字谜的解决方案,因此调查可以检查问题的答案受访者针对每个字谜的解决方案。

事实上,调查工作完美:但是,我希望受访者可以通过在响应字段中键入“EXIT”来提前退出循环,并将他们重定向到下一个问题 block (人口统计问题) )。

这通常是使用“跳过”逻辑实现的:但是,跳到 block 的末尾并不能解决问题(循环重新启动)。我设法将他们重定向到调查的末尾,但没有重定向到人口统计问题 block 。

有没有办法使用javascript跳转到人口统计 block 或提前退出循环并合并 block ?我是否缺少一个可以解决问题的 Qualtrics 选项?

请您参考如下方法:

如果这仍然与您相关:我需要相同的功能,这就是我解决它的方法:首先,我定义一个辅助变量,将其称为 EndLoop,我将其初始化为 0。然后我设置了一个函数,在人们点击按钮后将 EndLoop 的值更改为 1,另外,我向循环中的问题添加了一个显示逻辑,仅当 EndLoop 仍为 0 时才显示它们,并在 EndLoop 为 1 时隐藏问题。

这是分步说明以及 JavaScript 和 html 代码。

粗体部分是您需要做的事情,项目符号是如何做的更详细说明。

<强> 1。在循环和合并之前 define an embedded data field调用 EndLoop 并将其初始化为 0。

  • 转到调查流程面板
  • 添加新元素 > 选择嵌入数据字段
  • 将字段命名为“EndLoop”
  • 通过点击链接“立即设置值”将其值设置为数字 0
  • 确保将其移到合并循环 block 之前

<强> 2。对于循环中的每一项 set a display logic以 'EndLoop' = 0 为条件显示它们

  • 转到循环中每个问题的选项菜单
  • 选择“添加显示逻辑”
  • 从第一个下拉菜单中选择“嵌入数据”
  • 打开一个新的类型字段 > 作为名称类型 EndLoop + 选择“等于”+ 输入 0 作为值

<强> 3。在页面中插入一个自定义按钮,人们应该能够选择退出。该按钮运行一个名为 setEndLoop() onclick 的用户定义函数。

  • 点击应该出现按钮的问题
  • 在问题文本的右上角选择“html View ”
  • 我使用的代码是:

    <input id="css-class-mybutton" onclick="setEndLoop()" value=" done " type="button"> 
    
  • 如果要更改按钮文本,请更改 value = "done"中的 "done"

<强> 4。使用自定义 JavaScript 定义函数 setEndLoop(),将 EndLoop 的值更改为 1 并模拟下一个按钮单击

  • 转到循环中每个问题的选项菜单
  • 选择“添加 JavaScript”

我使用的代码是:

    /* Get the EndLoop variable */ 
    var EndLoop = "${e://Field/EndLoop}"; 
 
    Qualtrics.SurveyEngine.addOnload(function(){ 
 
        /* hide previous and next button */ 
        $('NextButton') && $('NextButton').hide(); 
        $('PreviousButton') && $('PreviousButton').hide(); 
 
        /* Function: on click on user-defined button -> change the field EndLoop */ 
        var that = this; 
 
        setEndLoop = function(){ 
            Qualtrics.SurveyEngine.setEmbeddedData('EndLoop', 1); 
            that.clickNextButton(); 
        }; 
    }); 

该按钮不会有默认样式,因此,定义一个自定义 css 来设置按钮的样式,使其看起来像主题的按钮。我这里使用的按钮的类名称是 id="css-class-mybutton",在 css 中使用 .css-class-mybutton{ ... }

希望有帮助。