我在做一個在線考試網站多種形式。在jsp中我們有許多由for
循環創建的表單。每個表格有1個選擇題和4個答案。JavaScript或jQuery的在JSP
我寫了使用jquery
檢查wheter用戶進行對錯這個問題的腳本。
for (int i = 0; i < NumofQuestions; i++) {
Question q = (Question) exam.get(i); %>
<form>
<p><b>Question <%=i+1%>: </b> <%=q.getContent()%></p>
<p><b>A. </b><input type="radio" name="answer" value="A"><%=q.getAnswerA()%><br></p>
<p><b>B. </b><input type="radio" name="answer" value="B"><%=q.getAnswerB()%><br></p>
<p><b>C. </b><input type="radio" name="answer" value="C"><%=q.getAnswerC()%><br></p>
<p><b>D. </b><input type="radio" name="answer" value="D"><%=q.getAnswerD()%><br></p>
</form>
<span id="result"></span>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript">
$("form").on('click',function() {
$this = $(this);
var value = $this.find('input:radio[name=answer]:checked').val();
var correct = "<%=q.getAnswer()%>";
if (value == correct) {
$('#result').html('right');
} else {
$('#result').html('wrong');
}
});
</script>
<% } %>
雖然腳本包含在for
循環,但變量correct
總是返回列表exam
的最後一個元素。意思q.getAnswer()
總是得到最後一個問題的答案,而不是正在做的問題。有什麼方法可以解決這個問題嗎?
更好地告訴你,從瀏覽器生成的HTML源,我的意思是,點擊鼠標右鍵,查看源代碼。 – vvtx