limesurvey在複選題的題型中,是將每個選項視為一個子題 (subquestion),因此每個子題都可以設定他的顯示條件。下圖中,我們可以在Relevance equation欄位中輸入條件。例如:假設我們希望在C02題選擇2時隱藏選項SQ001,我們就可以在選項SQ001的Relevance equation中輸入"{C02!=2}"。
但在單選題,由於每個選項並非被視為子題,因此就沒有這樣的選擇。從下圖中可以看到,單選題的介面中,並沒有如單選題一樣可以輸入條件的欄位。
要達到此效果,可以透過javascript來做。假設我們要設定在C02題選擇1時限制不能選擇選項8,在C02題選2時限制不能選擇選項6。做法如下:
<script type="text/javascript">
$(document).ready(function() {
var C02 = "{C02}";
if (C02 == "01") {
$('input[name="{C05.sgqa}"][value="08"]').prop('disabled', true);
}
if (C02 == "02") {
$('input[name="{C05.sgqa}"][value="06"]').prop('disabled', true);
}
});
</script>
語法中大括弧{}中的內容為limesurvey的參數。在第3行中,我們用「var C02 = "{C02}"」,其中{C02}會讓limesurvey將C02的答案帶入javascript中。
若我們觀察網頁的原始碼,則可看到limesurvey將題號轉換為類似"587642X25X896"的系統代號顯示,而非使用原始的題號。因此,我們在下面的判斷式中,也需要limesurvey帶入題目的系統代號,才能讓javascript正確識別選項。例如:「$('input[name="{C05.sgqa}"][value="08"]').prop('disabled', true);」中的{C05.sgqa}就是要limesurvey顯示系統代號的語法。
假設我們的C02選擇1,則上述的javascript就會變成一下的內容:
<script type="text/javascript">
$(document).ready(function() {
var C02 = "01";
if (C02 == "01") {
$('input[name="587642X25X896"][value="08"]').prop('disabled', true);
}
if (C02 == "02") {
$('input[name="587642X25X896"][value="06"]').prop('disabled', true);
}
});
</script>
可看到{C02}帶入了選擇的答案1,{C05.sgqa}變成了系統代號"587642X25X896"。
而實際執行的效果如下:
可看到選項8(幫家裡工作,沒有拿薪水)變成灰色無法選擇的狀態了。