2009-05-09 159 views
0
<select onchange ="----"> 
<option value="a">a</option> 
<option value="b">b</option> 
<option value="c">c</option> 
</select> 

我想寫這個小小的一段代碼wherien如果一個人選擇任何項目,那麼它應該移到顯示正在選擇什麼樣的價值在未來的HTML頁面..幫助中選擇標籤在HTML

我怎樣才能做到這一點..

希望我的疑問是明確

任何這裏建議,將不勝感激......

謝謝..

回答

1
<select onchange="document.forms[0].submit();"> 

假設它是頁面上的第一個表單(通常是這樣)。如果不是,您可以將索引更改爲正確的格式。

一個很好的參考是Introduction to Forms

您當然可以使用像jQuery這樣的庫(我的首選選項),但這是嚴格的可選的,因爲它可以用股票標準的Javascript很容易地完成。

0

您是否正在尋找Javascript運行在用戶的瀏覽器或某些服務器端解決方案?您只將此標記爲「html」,因此不清楚「小代碼」應該在哪種編程語言中...

0

onChange屬性將接受javascript表達式或函數。因此,這取決於你想要做什麼。如果您需要同一頁面中的下拉列表的值,則可以使用JavaScript代碼段訪問它。

但是,如果您希望該值在後續頁面(action屬性點的表單)上可用,則需要在更改事件中提交表單。在這種情況下,您可以使用類似於@Cletus指出的內容。

5

所有表單字段都有一個form屬性,您可以使用該屬性輕鬆訪問form元素以提交它。

您還需要select標記中的name屬性,否則它不起作用。

<select name="item" onchange="this.form.submit();"> 

或者,你可以去到另一個頁面通過設置窗口的位置,在查詢字符串添加值:

<select onchange="window.location.href='NextPage.html?item='+this.options[this.selectedIndex].value;"> 
0
<select onChange="redirect(this)"> 
<option value="html1.html" selected>1</option> 
<option value="html2.html">2</option> 
<option value="html3.html">3</option> 
</select> 

<script type="text/javascript"> 
function redirect(selSelectObject) 
{ 
    if (selSelectObject.options[selSelectObject.selectedIndex].value != "") 
    { 
    location.href=selSelectObject.options[selSelectObject.selectedIndex].value 
    } 
} 
</script> 

我希望這會幫助你。

0

你可以在select元素使用onchange直列的Javascript ...但內聯JS是一個壞習慣,應儘量避免。標記,即(X)HTML,應該是最小的和語義的,沒有任何內聯CSS或Javascript。儘可能多地將您的標記(HTML)與佈局(CSS)和您的行爲(Javascript)分開。

將您的Javascript保存在文檔head中,或者更好的做法是將其作爲head中調用的外部腳本。這既有利於保持標記清潔和最小化,又有助於集中和外化Javascript,從而促進代碼重用和易於維護。

像jQuery這樣的Javascript框架將使事情變得更加簡單和更健壯,如果您對Javascript沒有經驗。

另外,請注意,這種方法(選擇上的onchange)對於可訪問性來說是糟糕的(儘管您在網上到處都可以看到它)。例如,很多隻有鍵盤的用戶(包括大量的手機)都面臨可怕的情況,他們通過一次一個地選擇列表中的一個選項來選擇不同的選項......所以你的Javascript被踢了一次又一次地關閉,在初始選項和新選擇的選項之間選擇一次。醜陋 - 如果你實際上用onchange JS提交html表單,那麼這些用戶可能就是一個完整的showstopper。無論如何,你真的應該有一個單獨的提交按鈕(無Javascript的用戶,搜索機器人等); onchange JS可能會觸發某些Ajax,但不要依賴它成爲用戶提交選擇的唯一方式。

0

我建議您爲跨瀏覽器兼容性考慮將下拉列表與按鈕組合起來以調用「go to」操作。某些瀏覽器,尤其是與輔助功能技術一起使用時,會在滾動該項目時觸發onchange進行選擇。讓onchange事件本身在這種情況下做回發將會適得其反。即使用戶體驗可能不盡如人意,但用戶沒有使用JavaScript並且用戶使用輔助功能技術時,使用按鈕的選擇會更加優雅地降級。如果你通過AJAX加載內容,這將不那麼重要,因爲select可能仍然會在那裏與之交互。然而,將全部回發到其他頁面會挫敗遇到此問題的用戶。