我为我的网站构建了一个动态填充的多选表单。当用户在第一个选择中选择一个或多个项目时,第二个项目通过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);
});
}
谢谢!
答案 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
<option value"">
”