我使用LimeSurvey,我想包括一個問題被申請人最多可包括30名作爲答案如何LimeSurvey編碼。但是,我不想最初向受訪者提供30個箱子,因爲它是壓倒性的,並且如果您只有幾個名字進入,需要大量的滾動才能繼續。是否可以對問題進行編碼,以便僅在上一個框填充之後才顯示新框?謝謝。使新行僅出現當先前行已經充滿
回答
編輯:這個答案寫,因爲我無法找到tpartner事先提出的答案。主要區別在於我的基礎是填寫上一行和tpartner的按鈕以添加或刪除行。
下面的代碼應該適用於所有單選數組(例如5點比例數組),並且如果您知道一些Javascript/jQuery,則適用於其他類型。我想要做更多這樣的事情 - 不是今天。所以請隨時要求其他問題類型的實現。
的代碼可以在使用模板編輯器template.js文件的開頭添加。必須根據您的調查調整「任務」和「第一」變量。
//Function to only display a new row if there is an answer in the previous row
//NOTICE: Rows which are reset to "No answer" will not be hidden
//NOTICE: This scipt was written based on LimeSurvey 2.00+ build 131107
//NOTICE: It only works for single-choice arrays (e.g. 5-point scale array) or multiple short texts
//BEGIN
$(document).ready(function() {
//SGQ code of the question to apply this to
var quest = "12345X1234X12345";
//A(nswer) code of the first row
var first = "1";
//hide all rows except the first
$("tr[id^='javatbd" + quest + "']").css("display","none");
$("tr[id='javatbd" + quest + first + "']").css("display","table-row");
//display rows if previous is answered
$("[name^='" + quest + "']").change(function() {
if(this.value.trim().length >= 1)
$("tr[id='javatbd" + this.name + "']").next().css("display","table-row");
});
});
//END
問候
哪種題型,你打算使用?根據我的看法,最好的辦法應該是使用多個短文本類型問題並創建30個文本框。然後,您可以使用javascript來隱藏這些文本框,並在前面的文本框獲得一些值作爲輸入時立即顯示它們。
喝彩!
下面是一個使用按鈕來添加/刪除陣列行的另一種方法 - http://manual.limesurvey.org/Workarounds:_Manipulating_a_survey_at_runtime_using_Javascript#Variable_Length_Array_.28Multi_Flexible_Text.29_question
乾杯隨着2.x版本(不知道哪個版本開始允許
這個,我運行2.7,它在那裏工作),這個功能是通過相關性公式內置的,不需要編碼。只需在要顯示的文本框的相關性公式中輸入!is_empty(questioncode_Code)
即可。 Code
是上面觸發外觀的字段的代碼。
大,是的,因爲一些版本:真的很容易就分問題使用相關方程。最好是使用(SQ2):is_empty(questioncode_SQ1.NAOK)&& is_empty(questioncode_SQ2.NAOK)其他:如果用戶刪除SQ1:它刪除SQ2答案;) –
@DenisChenu:!極好的補充。一個小的更正,我相信它應該是!is_empty(questioncode_SQ1.NAOK)或!is_empty(questioncode_SQ2.NAOK)。不&&。 – fry
- 1. 防止在當前行被填充之前在DataGridView中出現新行?
- 2. 排除其中元件先前已經滿足N次
- 3. 只顯示鏈接,如果現場已經充滿
- 4. 數據表 - CSV僅導出當前行
- 5. 上市行不僅當條件滿足
- 6. 平均先前和當前行 - 熊貓
- 7. 檢測時自動填充已經充滿
- 8. 頭已經發出已發行
- 9. 空當前充滿多維數組
- 10. 如何避免div執行新行如果一行已滿?
- 11. 充滿行和對角線
- 12. WinForms多線程:僅當前一個已完成時才執行GUI更新
- 13. Java - 如何重新填充先前已知元素的arraylist
- 14. 警告:UIAlertController已經出現
- 15. 訪問先前的行並將它的值除以當前行
- 16. 當UIProgressView已滿時加載新視圖
- 17. 自動遞增始終加1,以前行,即使前一行已經下降
- 18. 當服務器磁盤已滿時Wordpress網站出現故障
- 19. R編程:使用先前計算的行更新每一行
- 20. 找出當行已經在H2數據庫表被修改
- 21. 隱藏一個div僅當它已經顯示出
- 22. 如何用新行覆蓋當前行以僅保留一行數據
- 23. 如果已經運行,請退出VLC
- 24. 避免當國家已經填充內容重新取
- 25. 使用基於以前的條件已經出現的表單的輸出進行計算
- 26. 如何重置先前更新的行並僅使用一個查詢更新所選行?
- 27. 在當前行中填充前一行的值Oracle視圖
- 28. 填充基於當前行和以前行的值的MySQL
- 29. PeopleSoft Rowset僅複製當前行
- 30. 如何僅使當前年份出現一次?
我目前正在使用該問題類型。我如何將Javascript添加到調查中? – zgall1
太棒了!你需要檢查你正在使用的模板。如果它的默認模式,那麼你需要將你的代碼放入默認模板中的template.js文件中。通常建議使用不同的名稱創建模板的副本並修改該特定模板的template.js。 –
http://manual.limesurvey.org/wiki/Workarounds:_Manipulating_a_survey_at_runtime_using_Javascript –