2012-04-10 35 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"">