jQuery UI自动完成:告诉它我的'标签'和'价值'

can*_*era 5 jquery jquery-ui-autocomplete

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

包含我的查找值的aray看起来像这样(由Firebug记录):

[ Object { id="12", name="Don Davis" }, Object { id="17", name="Stan Smith" } ]
Run Code Online (Sandbox Code Playgroud)

我想使用'id'作为'label'和'name'作为'value'但是无法弄清楚如何告诉配置对象.

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

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

Jas*_*nga 8

从阅读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>
Run Code Online (Sandbox Code Playgroud)