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(帮家里工作,没有拿薪水)变成灰色无法选择的状态了。