7

当那些不是 JSON 数组中使用的索引名称时,有没有办法告诉 jQuery UI Autocomplete 哪些 JSON 数组索引用作“标签”和“值”?

包含我的查找值的数组如下所示(由 Firebug 记录):

[ Object { id="12", name="Don Davis" }, Object { id="17", name="Stan Smith" } ]

我想使用 'id' 作为 'label' 和 'name' 作为 'value' 但不知道如何告诉配置对象。

我的数组包含在一个局部变量中——没有进行 Ajax 调用。

这个另一个问题的回答通过创建一个隐藏的表单输入来解决这个问题,但似乎有一种更简洁的方式来处理这个问题。

4

3 回答 3

9

通过阅读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>
于 2012-06-03T03:32:36.440 回答
0

只需将结果转换为包含标签值对象列表的数组

var list= result.map(function (item) { return { label: item.title, value: item.value }; });
$( "#project" ).autocomplete({
    source: list
});
于 2020-12-08T16:11:28.050 回答
-2

您必须返回一个像这样的数组:(端服务器 PHP)

for( ... ){
$suggest = array('value'=>$value,'label'=>$label); }

于 2016-12-06T19:37:01.967 回答