今天做项目碰见一个问题,做了半天:
是这么回事:
问卷调查在编辑问题的时候,会有单选、多选、自填三个类型,
由于是编辑问题,所以肯定带有回显功能的。
假设我现在要编辑单选的问题,进入编辑单选问题的页面,如下
而我需要显示的是单选的答案,而不是全部都要选。
我在页面上写了个js用来控制单选和多选的显示,点击单选或多选后,是正确的,但是已进入页面的时候还是上面那个样子。
怎么办?
这时就需要调用js里面的函数:
<script language="javascript"> <!-- function set(){ var tmp = document.getElementById("t"); var tmp1 = document.getElementById("t2"); tmp.style.display="block"; tmp1.style.display="none"; } function set2(){ var tmp = document.getElementById("t"); var tmp1 = document.getElementById("t2"); tmp1.style.display="block"; tmp.style.display="none"; } function set3(){ var tmp = document.getElementById("t"); var tmp1 = document.getElementById("t2"); tmp.style.display="none"; tmp1.style.display="none"; } //--> </script>
再页面末尾再调用:
<c:set var="questionTypeSingle" value="<%= com.boventech.goal.entity.question.QuestionType.SINGLE %>"/> <c:set var="questionTypeMany" value="<%= com.boventech.goal.entity.question.QuestionType.MANY %>"/> <c:if test="${question.questionType eq questionTypeSingle }"> <script>set();</script> </c:if> <c:if test="${question.questionType eq questionTypeMany }"> <script>set2();</script> </c:if>
注意事项:
要想使用枚举里面的值,必须要用到c:set,如果像这么写:
<c:if test="${question.questionType eq com.boventech.goal.entity.question.QuestionType.MANY}">
这是必定错误的。