2012-04-24 163 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 
相關問題