2017-10-07 125 views
0

我在Qualtrics中實現此代碼時遇到問題。現在,我已經將這兩個嵌入式數據字段創建在調查流程中,包含我想要計算的響應:「Lambda_Block_1」和「Lambda_Mat」。需要幫助在Qualtrics中實現Javascript計算

當我用矩陣表問了一系列問題後,我做了一個分頁符。 然後我的下一個問題是一個佔位符/時間窗口。在這個問題中,我把這個Javascript:

Qualtrics.SurveyEngine.addOnload(function() 
{ 
var block_1= [parseInt("${q://QID664/SelectedAnswerRecode/1}"), 
    parseInt("${q://QID664/SelectedAnswerRecode/2}"), 
    parseInt("${q://QID664/SelectedAnswerRecode/3}"), 
    parseInt("${q://QID664/SelectedAnswerRecode/4}"), 
    parseInt("${q://QID664/SelectedAnswerRecode/5}"), 
    parseInt("${q://QID664/SelectedAnswerRecode/6}"), 
    parseInt("${q://QID664/SelectedAnswerRecode/7}"), 
    parseInt("${q://QID664/SelectedAnswerRecode/8}"), 
    parseInt("${q://QID664/SelectedAnswerRecode/9}"), 
    parseInt("${q://QID664/SelectedAnswerRecode/10}")]; 

var lambda_mat 
lambda_mat= [.7, .9, 1.1, 1.3, 1.5, 1.7, 1.9, 2.1, 2.3];  
lambda_mat.reverse(); 

    for(i=0;i<lambda_mat.length;i++) { 
switchpoints[i] = switchpoints[i] * lambda_mat[i]; 
} 
var filtered_switchpoint 
filtered_switchpoint= switchpoints.filter(0); 

var lambda_block_1 
if (switchpoints.allValuesSame() == true || filtered_switchpoint.length    >1){ 
lambda_block_1=0; 
}else{ 
lambda_block_1= filtered_switchpoint; 
} 
Qualtrics.SurveyEngine.setEmbeddedData("Lambda_Block_1",lambda_block_1); 
}); 

我需要幫助在Qualtrics中運行此。 有沒有人有任何想法,爲什麼這不起作用? Javascript編碼錯誤?

+0

代碼不工作不是一個解釋... – dda

+0

@dda我編輯我的評論更清晰。謝謝。 –

回答

0

您有幾個語法錯誤:

  • 缺少parseInt函數和報價在第一線
  • 在三個地方
  • 無與倫比})命令分號
  • 缺少結束;在最後一行(但也許你只是沒有在頂部添加addOnLoad行)。

此外,lambda_mat是一個數組。要使setEmbeddedData正常工作,需要先將其轉換爲逗號分隔的字符串。在JavaScript問題之前,Lambda_Block_1和Lambda_Mat都必須在調查流程中定義。

您應該考慮學習使用瀏覽器開發工具調試器。

+0

你現在可以檢查嗎?我做了編輯?謝謝 –

+0

我想知道我是否在正確的地方給它打電話。在第一個模塊中,我在Survey Flow中初始化變量Lambda_Block_1。然後在第二個塊中,第一個問題是矩陣表(我想用數學來做數據),然後是分頁符,帶文本的頁面,然後是分頁符,然後是帶文本的頁面 - 這裏是我運行的地方的JavaScript。這聽起來不錯嗎? –

+0

在var lambda_mat和var filtered_switchpoint之後仍然缺少一個分號。你在哪裏運行它聽起來很好。 –