2014-09-10 61 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); 
          } 
         } 
        } 
    });