2012-04-24 65 views
2

我明白这个问题听起来很基本,但我一直试图解决它,这一整个上午,我仍然无法做到这一点。我会很感激任何帮助。保持刷新页面或提交请求后选择单选按钮

我在我的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

如果您使用“checked”属性生成单选按钮的html,它将被检查。例如,下面的HTML将生成被选中一个单选按钮:

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

所以,话说回来,你需要修改你的JSP有条件地生成相应的单选按钮,在“选中”属性。据推测,你的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属性。如果没有选中无线电,则不会生成检查属性。

+0

令人惊叹。非常感谢。这正是我需要的。我希望有一天能和你们一样。 – Susie 2012-04-25 15:18:48

1

您需要重新发送该页面返回给浏览器之前设置单选按钮的Checked属性的服务器。

HTTP是stateless protocol

+0

谢谢您的答复。由于我是新手,你能告诉我该怎么做吗?一个代码的例子将非常感激。 – Susie 2012-04-24 18:56:51

+0

对不起,我不知道Java,但原理是一样的。尝试寻找一个基于Java的表单示例。 – 2012-04-24 19:17:50

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 
相关问题