刷新页面或提交请求后,请保持选中单选按钮

时间:2012-04-24 17:56:22

标签: java html jsp javascript-events struts

我理解这个问题可能听起来很基本,但我整个上午一直试图解决它,但我仍然无法做到。我真的很感激任何帮助。

我的jsp页面中有两个单选按钮。当选择任何一个时,它会调用一个javascript函数。如果您选择单选按钮1,它会显示表1中的数据,如果选择单选按钮2,则会显示表2中的数据。

结果,我的页面被刷新,并且不再选择单选按钮。我想向用户显示选择了哪个单选按钮。

function viewUploadedData(){
    document.location.href = "ForecastInquiryFilter.do?exportVar=viewUploadedData";

function viewTopsData(radio){
document.location.href = "ForecastInquiryFilter.do?exportVar=viewTopsData";

}

<input type="radio" name="dataTypeToView" id="topsData" onclick="viewTopsData();"/>
    <label for="topsData">TOPS Data</label><br/>
    <input type="radio" name="dataTypeToView" id="uploadedData" onclick="viewUploadedData();"/>
    <label for="uploadedData">Uploaded Data </label>

3 个答案:

答案 0 :(得分:3)

如果使用“checked”属性为单选按钮生成html,则会进行检查。例如,以下html将生成一个选中的单选按钮:

<input type=radio name=myradio value=1 checked>

所以,说到这里,你需要修改你的jsp来有条件地为相应的单选按钮生成“checked”属性。据推测,你的jsp知道检查了哪个单选按钮,所以希望这应该很容易编码。

所以,你的jsp代码可能看起来像这样:

<%
String whichRadio = request.getParameter("myradio");
String r1checked = "";
if (whichRadio.equals("1")) r1checked = " checked";
String r2checked = "";
if (whichRadio.equals("2")) r2checked = " checked";
%>
<input type=radio name=myradio value="1"<%= r1Checked %>>
<input type=radio name=myradio value="2"<%= r2Checked %>>

上面的代码将为你调用jsp时检查的无线电产生checked属性。如果未选中任何无线电,则不会生成任何已检查的属性。

答案 1 :(得分:1)

在将页面重新发送回浏览器之前,您需要在服务器上设置单选按钮的CHECKED属性。

HTTP是stateless protocol

答案 2 :(得分:0)

使用jstl

<input type="radio" name="digest" value="md5" <c:if test="${digest == 'md5' or empty digest}">checked</c:if>>md5
<input type="radio" name="digest" value="sha1" <c:if test="${digest == 'sha1'}">checked</c:if>>sha1