2011-05-03 77 views
0

我試圖從我的JSP中刪除JavaScript。目前我正在使用類似這樣的內容來根據下拉列表中的選擇轉發到我需要的頁面。根據不使用JavaScript的下拉列表中的選擇轉到新頁面

function STFS() { 
    var url = document.stform.typeOptions.options[document.stform.typeOptions.selectedIndex].value; 
    if (url!=0) { 
     window.location=url; 
    } 
} 

我該如何在不使用javascript的情況下做同樣的事情。 我嘗試設置window.location的在如下的「選擇的onChange」:

<select name="typeOptions" onChange="window.location=this.options[this.selectedIndex].value;"> 

但是,當我提交表單,它並沒有去預期的URL。我肯定錯過了什麼。 這是一個portlet環境,URL相對較長。 任何幫助表示讚賞。由於

+4

你知道在onChange中這樣做仍在使用Javascript,對不對? – Robert 2011-05-03 14:50:35

+0

但你在onChange屬性中嘗試的也是Javascript!? – DanielB 2011-05-03 14:51:38

+0

ummm通過使用onChange事件(更不用提整個window.location位,並使用dom元素來查找您的url值),您正在使用javascript。有沒有一個特定的原因,你不想使用js?你用這種方法試圖完成什麼? – scrappedcola 2011-05-03 14:53:24

回答

1

使用 onchange代替 onChange(不是真正的問題,因爲許多瀏覽器都原諒了這一點,但它是不正確平),並確保您正在運行的代碼,你認爲你正在運行(即你」不要運行舊的或瀏覽器緩存的版本),並且確實要更改下拉項目,而不是按下表單提交按鈕(在提交表單時 onchange不會運行)。


更新按照註釋

太棒了!這對我來說太低調了。謝謝。沒有JavaScript的原因是爲了使網站即使在禁用JavaScript的情況下也能正常工作。因爲這個頁面涉及的腳本的數量就是這個函數,所以我認爲最好是擺脫這個。但是,如果任何人都可以建議任何其他方式來實現這一點。我會很高興。我打開使用以及

變化,如下所示:

<form action="redirect"> 
    <select name="url"> 
     ... 
    </select> 
    <input type="submit"> 
</form> 

RedirectServlet類映射上的/redirect的URL模式,基本上沒有在doGet()方法如下工作:

response.sendRedirect(request.getParameter("url")); 
+0

感謝BalusC。我沒有運氣就嘗試了你的建議。這可能是因爲我問這個問題的方式。但是,在任何情況下,我實際上回到基礎知識,並提交表單與我需要在選擇選項值而不是整個網址的id。並在控制器中做了一個request.getAttribute。感謝所有評論傢伙。 – Zachary 2011-05-06 14:44:05

相關問題