从动态表单中获取单选按钮的值

时间:2018-03-12 13:02:09

标签: html jsp radio-button

我在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);
}
...

当我添加一个循环来打印出已经添加到答案中的内容时,它返回“ononononon”所以我想我正在访问如果按钮被选中,因为我只会在这里查看所选的单选按钮,我该如何获得而不是标签的价值?

1 个答案:

答案 0 :(得分:1)

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

<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%>">