2012-04-10 31 views
1

我爲我的網站構建了一個動態填充的多選表單。當用戶在第一個選擇中選擇一個或多個項目時,第二個通過jQuery填充。 表格除了填充多重選擇的順序外正確工作。更改jQuery填充表單中的順序選擇

例如「產品」選擇包含:

<select name="product_id" id="products" multiple="multiple"> 
<option value="#" selected="selected">Please Select</option> 
<option value="1">Product 1</option> 
<option value="5">Product 2</option> 
<option value="4">Product 3</option> 
<option value="6">Product 4</option> 

(是,的值不相同的產品編號) 當用戶選擇其中一個jQuery的呼叫填充下一個下拉菜單。

<select name="version_id" id="versions" multiple="multiple"> 
<option value="100">3.0.7</option> 
<option value="101">1.0.8</option> 
<option value="102">12.0.1</option> 

代碼填充由「值」這一選擇和命令,是有辦法迫使它通過的實際內容例如訂購將其更改爲:

<option value="101">1.0.8</option> 
<option value="100">3.0.7</option> 
<option value="102">12.0.1</option> 

成功代碼在我的電話是:

success: function(versions) 
{ 
$.each(versions,function(id,version) 
{ 
var opt = $('<option />'); 
opt.val(id); 
opt.text(version); 
$('#versions').append(opt); 
}); 
} 

謝謝!

+0

我認爲這是你在找什麼: - http://stackoverflow.com/questions/6670041/sort-options-in-a-select-list-with-javascript-jquery-but-未按照字母順序 – billyonecan 2012-04-10 09:54:50

回答

1

感謝@deifwud指向我在正確的方向。最後,我在成功之後直接添加了以下內容。它通過文本而不是值重新排序結果。

$("#versions").html($("#versions option").sort(function (a, b) { 
return a.text == b.text ? 0 : a.text < b.text ? -1 : 1 
})); 
0

您必須對執行sql查詢的文件進行ajax調用才能動態生成下一個下拉框....如果是這種情況,那麼您需要將關鍵字「ASC」放在最後一個選擇正在產生您的「id」的值的屬性<option value"">