2014-09-10 66 views
2

我目前正在进行Qualtrics调查,其中调查对象必须解决一长串变量,然后回答一些人口统计问题。过早退出Qualitative中的循环和合并块

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

事实上,调查工作非常完美:但是,我希望允许受访者通过在响应字段中输入“EXIT”过早退出循环,并将其重定向到下一个问题块(人口统计问题)。

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

有没有办法使用JavaScript跳转到人口统计模块或退出循环并过早合并块?我是否错过了可以做到这一点的Qualtrics选项?

回答

4

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

这是一步一步的指令和JavaScript和HTML代码。

大胆的东西是你需要做的,bulletpoint更详细的指导如何做到这一点。

1.在你的循环与合并define an embedded data field称为EndLoop并对其进行初始化为0

  • 转到调查的流面板
  • 添加了新的元素>选择嵌入数据字段
  • 将该字段命名为'EndLoop'
  • 通过点击链接“现在设置值”来设置其值t0
  • 使s URE你合并和环块

2.前移动它对于每个项目的环set a display logic向他们展示有条件的“端环” = 0

  • 进入选项菜单在循环
  • 选择“添加显示逻辑”
  • 选择从所述第一下拉菜单
  • “嵌入数据”每个问题的一种新的类型字段打开>如名称类型EndLoop +选择“等于” + 0型的值

3.插入自定义的按钮,进入页面,人们应该能够选择退出。该按钮运行名为setEndLoop()onclick的用户定义函数。

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

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

4.使用自定义javascropt到ENDLOOP的值更改为1和效仿定义功能setEndLoop()下一个按钮,点击

  • 转到每题的选项菜单中循环
  • 选择“添加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(); 
     }; 
    }); 

的butto n将不具有默认样式,因此,定义一个自定义css让样式按钮看起来像您的主题按钮。我在这里使用的按钮的类名是id="css-class-mybutton",在css中使用.css-class-mybutton{ ... }

希望有所帮助。

3

我知道这有点晚,但我有类似的问题,并希望发布一个替代解决方案。我使用循环和合并功能,但我不想让参与者单击按钮退出循环,而是想使用多选题来退出循环。这个问题是,“你想问更多问题吗?”,回答是和不是。如果参与者选择了“是”,他们将继续经历循环,如果他们选择“否”,他们将退出循环并继续下一个问题块。

我的前两个步骤与上面的相同。

1.设置一个名为EndLoop的嵌入数据字段并将该值设置为1. - 在测量流程面板中选择添加一个元素。然后输入名称EndLoop。 - 然后立即选择设定值并将该值设置为1. - 确保这在调查流程中的循环和合并块之前。

  • 对于在循环的每个问题和合并块使用的显示逻辑,以确保它们仅显示当嵌入式数据元素ENDLOOP是1

  • 现在的问题“你想问更多问题吗?”在添加javascript区域中添加以下代码。

    • 可以通过单击屏幕左侧问题编号下的高级选项按钮来找到javascript区域。选择'Add javascript ...'
      • 将会出现一些代码...它应该是这样的:

    Qualtrics.SurveyEngine.addOnload(函数(){

    /将你的JavaScript低于此线/

    });

    • 基本上我使用事件跟踪来将嵌入数据字段EndLoop更新为与答案选项相关联的数值,当选择了答案选项时。在这种情况下,答案“是”的值为1,因为它是第一个选项,“否”的值是2,因为它是第二个选项。当选择“否”时,嵌入数据字段EndLoop被设置为值2.这意味着没有问题会显示,因为它们具有显示逻辑以确保它们仅在EndLoop字段为1时显示。
  • 我的整个代码如下所示:

    Qualtrics.SurveyEngine.addOnload(function() 
    { 
        this.questionclick = function(event,element) 
        { 
         console.log(event, element); 
         if (element.type == 'radio') 
         { 
          var choiceNum = element.id; 
          if (choiceNum == 2) 
          { 
          Qualtrics.SurveyEngine.setEmbeddedData("EndLoop", choiceNum); 
          } 
         } 
        } 
    });