Java 如何确保单选按钮组在HTML中不会相互取消选择?
我面临一个问题,在查看页面上显示问题和选项,并将结果提交到结果页面,检查结果是否正确。代码如下 问题是单选按钮只允许选中一个。请看下面我的截图。我怎样才能解决这个问题 [TakeExam.jsp]Java 如何确保单选按钮组在HTML中不会相互取消选择?,java,jsp,servlets,jdbc,Java,Jsp,Servlets,Jdbc,我面临一个问题,在查看页面上显示问题和选项,并将结果提交到结果页面,检查结果是否正确。代码如下 问题是单选按钮只允许选中一个。请看下面我的截图。我怎样才能解决这个问题 [TakeExam.jsp] <form method="post" action="Examprocess" class="form-horizontal"> <div class="form-group"> <label class="control-label col-sm
<form method="post" action="Examprocess" class="form-horizontal">
<div class="form-group">
<label class="control-label col-sm-1" style="color: white"> Subject:</label>
<div class="col-sm-3">
<select class="form-control" name="sub">
<option>Select your choice</option>
<option>cprog</option>
<option>cpp</option>
<option>html</option>
<option>java</option>
</select>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<input style="color:red" type="submit" value="start exam" />
</div>
</div>
</form>
[CTest.java]
package exam.DAO;
import java.sql.*;
import java.util.ArrayList;
import exam.DTO.ExamQ;
import exam.utilities.ConnectionFac;
public class CTest {
Connection cn = null;
PreparedStatement ps = null;
Statement st = null;
ResultSet rs = null;
ConnectionFac con = new ConnectionFac();
String selectctest ="select * from ctest";
public ArrayList<ExamQ> getdata() {
ArrayList<ExamQ> arr =new ArrayList<ExamQ>();
try {
rs=con.getResultSet(selectctest);
while(rs.next()) {
ExamQ examques =new ExamQ();
examques.setQid(rs.getShort(1));
examques.setQuestion(rs.getString(2));
examques.setOption1(rs.getString(3));
examques.setOption2(rs.getString(4));
examques.setOption3(rs.getString(5));
examques.setOption4(rs.getString(6));
examques.setAnswer(rs.getString(7));
arr.add(examques);
}
} catch (SQLException e) {
e.printStackTrace();
}
return arr;
}
}
[view.jsp]
<div class="row">
<div class="col-sm-4" >
</div>
<div class="col-sm-8" >
<form method="post" action="result.jsp">
<% int i=1; %>
<c:forEach items="${examq}" var="examq" >
<label style="color:white">Q<%=i %>:<c:out value="${examq.getQuestion() }"></c:out></label><br>
<label style="color:white" for="O1">O1:<c:out value="${examq.getOption1() }"></c:out></label>
<input type="radio" name="radio" value="${examq.getOption1() }"><br>
<label style="color:white" for="O2">O2:<c:out value="${examq.getOption2() }"></c:out></label>
<input type="radio" name="radio" value="${examq.getOption2() }" ><br>
<label style="color:white" for="O3">O3:<c:out value="${examq.getOption3() }"></c:out></label>
<input type="radio" name="radio" value="${examq.getOption3() }"><br>
<label style="color:white" for="O4">O4:<c:out value="${examq.getOption3() }"></c:out></label>
<input type="radio" name="radio" value="${examq.getOption3() }"><br>
<hr>
</c:forEach>
<input type="submit" value="submit">
</form>
<a href="takeexam.jsp">GoBack</a>
</div>
</div>
问:
O1:
氧气:
O3:
O4:
问题在于HTML表单中的无线电组名称冲突。您正在对所有组使用以下命令:
name="radio"
您需要做的是为每个组使用不同的名称;按单词顺序排列,在单个组中对每个问题使用相同的名称。假设您的问题ID是整数,您可以执行以下操作:
name="radio_${examq.getQid()}"
这将确保每个组独立于其他组显示互斥的选择特征。请发布实际代码,而不是截图。我已将其回滚到第一个问题状态,以帮助重新打开。为了澄清这个问题,我重新命名了标题。对于您的其他问题,Raju,请提出一个全新的问题。避免搁置问题符合您的利益,因为太多的问题会自动禁止提问。现在它正常工作了,谢谢您的解决方案。但现在我有另一个问题。你也能解决这个问题吗?**代码张贴在**上方,欢迎使用。请看我在问题下的评论。我如何检查答案是否正确并给它们打分。分数显示在result.jsp页面上。请#halfer给我一个解决方案。这是一个新问题@Raju,所以请问一个关于堆栈溢出的新问题。非常感谢@halfer
name="radio"
name="radio_${examq.getQid()}"