有没有办法告诉jQuery UI Autocomplete哪些JSON数组索引用作'标签'和'值',而不是JSON数组中使用的索引名称?
包含我的查找值的aray看起来像这样(由Firebug记录):
[ Object { id="12", name="Don Davis" }, Object { id="17", name="Stan Smith" } ]
我想使用'id'作为'label'和'name'作为'value'但是无法弄清楚如何告诉配置对象。
我的数组包含在一个局部变量中 - 没有进行Ajax调用。
另一个问题response通过创建隐藏表单输入来解决问题,但似乎有一种更清晰的方法来处理它。
答案 0 :(得分:7)
通过阅读Jquery UI文档,您可以尝试以下内容:
<script>
$(function() {
var projects = [ { id: "12",value: "Don Davis" }, { id: "17", value:"Stan Smith" } ]
$( "#project" ).autocomplete({
minLength: 0,
source: projects,
focus: function( event, ui ) {
$( "#project" ).val( ui.item.value);
return false;
},
select: function( event, ui ) {
$( "#project" ).val( ui.item.value);
$( "#project-id" ).val( ui.item.id);
return false;
},
search: function(event, ui) { console.log(event); console.log(ui) }
})
.data( "autocomplete" )._renderItem = function( ul, item ) {
return $( "<li></li>" )
.data( "item.autocomplete", item )
.append( "<a>" + item.value+"</a>" )
.appendTo( ul );
};
});
</script>
答案 1 :(得分:0)
只需将结果转换为包含标签值对象列表的数组
var list= result.map(function (item) { return { label: item.title, value: item.value }; });
$( "#project" ).autocomplete({
source: list
});
答案 2 :(得分:-1)
您必须返回如下数组:( side server PHP)
for( ... ){
$suggest = array('value'=>$value,'label'=>$label);
}