从动态窗体获取单选按钮的值



我在JSP中有一个包含多项选择测验的表单,每个问题后跟一组带有选项的单选按钮,这些按钮是从数据库中提取的,因为问题并不都具有相同数量的选项,并且在创建表单时添加了单选按钮,每个单选按钮都有一个包含文本答案的标签。提交页面时,它会传递给另一个 JSP,在这里我想从标签中获取要存储的文本,以便我可以检查答案。

下面是表单,因此每组单选按钮都根据问题编号命名,并且根据问题中的问题编号和选项为组中的每个成员提供 ID。

<form class="container" id="quiz" method="post" action="/quizChecker.jsp">
<% for (int i = 0; i < ques_nos.size(); i++) {
String query = "SELECT answer_text, is_correct FROM Quiz_Question_Option WHERE quiz_ques_id = ?";
PreparedStatement prepstmt = con.prepareStatement(query);
prepstmt.setInt(1, ques_nos.get(i));
ResultSet rsq = prepstmt.executeQuery();
rsq.last();
int size = rsq.getRow();
rsq.first();
%>
<p id="ques" class="Question"<%=i%>"><%=questions.get(i)%></p><br>
<% for (int j = 0; j < size; j++) {
%>
<input class="checkmark" type="radio" name="q<%=i%>" id="q<%=i%><%=j%>">
<label for="q<%=i%><%=j%>"><%=rsq.getString(1)%></label><br>
<% rsq.next();
}
}
session.setAttribute("ques", ques_nos);
%>
<button type="submit" value="checkQuiz">Submit Quiz</button>
</form>

这是我尝试获取所选按钮的文本值的代码。

<%
ArrayList<String> answers = new ArrayList<~>(5);
for (int i = 0; i < 5; i++) {
String given = request.getParameter("q"+i);
answers.add(given);
}
...

当我添加一个循环来打印出添加到答案中的内容时,它返回了"onononononon",所以我想我正在访问是否选择了该按钮,因为我只会在这里查看选定的单选按钮,我如何获取标签的值?

尝试为所有单选按钮设置一个值

<input class="checkmark" value="answer1" type="radio" name="q<%=i%>" id="q<%=i%><%=j%>">
<input class="checkmark" value="answer2" type="radio" name="q<%=i%>" id="q<%=i%><%=j%>">

最新更新