我是一名新手程序员/设计师,试图配置jquery ui自动完成功能。我使用javascript对象(数组)工作。该阵列包含我们指导客户的零售商店。我们有一些首选的商店,所以我们希望他们比其他商店更早出现,但我真的不知道如何将它们过滤到结果中,或者甚至可能。
如果有人输入“Widget”,我想首先出现“Widget Store 4”。这是jquery代码:
var widgetstores = [
{label: "Widget Store 1", value: "1001" }, {label: "Widget Store 2", value: "1002" }, {label: "Widget Store 3", value: "1003" }, {label: "Widget Store 4", value: "1004" }, {label: "Widget Store 5", value: "1005" }, {label: "Widget Store 6", value: "1006" }
]
$(function() {
$('#tags').autocomplete({
minLength: 3,
source: widgetstores,
focus: function(event, ui) {
$('#tags').val(ui.item.label);
return false;
},
select: function(event, ui) {
$('#tags').val(ui.item.label);
$('#customer_num').val(ui.item.value);
return false;
}
})
.data( "autocomplete" )._renderItem = function( ul, item ) {
return $( "<li></li>" )
.data( "item.autocomplete", item )
.append( "<a>" + item.label + "</a>" )
.appendTo( ul );
};
});
答案 0 :(得分:1)
我不确定您使用的是什么AutoComplete库,但它看起来像:
http://docs.jquery.com/UI/Autocomplete
该库会不自动为您排序项目。它使用传递给脚本的项目的顺序,并从中过滤。因此,如果您的项目按照您希望的顺序排列,则在传递给自动填充之前,它应该使用该顺序。
更新
var widgetstores = [
{label: "Widget Store 4", value: "1004" }, {label: "Widget Store 1", value: "1001" }, {label: "Widget Store 2", value: "1002" }, {label: "Widget Store 3", value: "1003" }, {label: "Widget Store 5", value: "1005" }, {label: "Widget Store 6", value: "1006" }
]