在jquery填充表单中选择更改顺序

时间:2012-04-10 09:47:53

标签: php ajax jquery

我为我的网站构建了一个动态填充的多选表单。当用户在第一个选择中选择一个或多个项目时,第二个项目通过jQuery填充。 除了填充多选的顺序外,表单正常工作。

e.g。 “产品”选择包含:

<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); 
});
}

谢谢!

2 个答案:

答案 0 :(得分:1)

感谢@deifwud将我指向了正确的方向。最后,我在成功函数后直接添加了以下内容。它按文本而不是值重新排序结果排序。

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

答案 1 :(得分:0)

你必须对执行sql查询的文件执行ajax调用,以动态生成下一个下拉框....如果是这种情况,则需要将关键字“ASC”置于最后一个选择查询,它会在id

的value属性中产生“<option value"">