2008-09-08 62 views
5

我想知道如果任何人有使用jQuery插件,鏈接組合框(JQuery的preferrably)

<select> 
    <option> Blah </option> 
</select> 

組合框轉換一個html到的東西(可能是一個div),其中,選擇項目的作用一樣的經驗點擊一個鏈接。

我想你可能可能使用JavaScript來處理選擇事件(我的javascript知識有點在失修的時刻)和'開關'的組合框的值,但這似乎更像是一個黑客攻擊。

您的建議,經驗和建議表示讚賞。

回答

8

簡單的解決方法是使用

$("#mySelect").change(function() { 
    document.location = this.value; 
}); 

這將創建的選擇框,您重定向到存儲在所選擇的選項的值字段中輸入網址的onchange事件。

0

的javascript中的「選擇」,該位:

onchange="if(this.options[this.selectedIndex].value!=''){this.form.submit()}" 

這不是理想的(因爲在ASP.NET MVC的形式提交我使用的是沒有出現要使用的URL路由引擎)但它的工作。

2

我不知道,你要鏈接,當你點擊的檔位,但鑑於這樣的事情也許會工作:

<select id="mySelect"> 
    <option value="1">Option 1</option> 
    <option value="2">Option 2</options> 
</select> 
<div id="myDiv"/> 

及以下的JQuery創建<div>元素的列表,一個去到基於選項值的URL:

$("#mySelect option").each(function() { 
    $("<div>" + $(this).text() + "</div>").appendTo($("#myDiv")).bind("click", $(this).val(), function(event) { 
     location.href = "goto.php?id=" + event.data; 
    }); 
}); 
$("#mySelect").remove(); 

這是做你想做的嗎?

1

如果你將有很多的,你要允許作爲重定向使用選擇框,而無需單獨定義它們,嘗試類似於:

$("[id*='COMMON_NAME']").change(function() { 
    document.location = this.value; 
}); 

,有你的選擇框相應地命名爲:

<select id="COMMON_NAME_001">...</select> 
<select id="COMMON_NAME_002">...</select> 

這將創建包含「COMMON_NAME」做<option>值的重定向所有ID的onchange事件。