1

我有自动完成输入的下一个功能:

$("#auto").autocomplete({
        source:"/autocomplete.php",
        minLength: 5,
        _renderItem: function( ul, item) { 
            return $( "<li></li>" ) 
                .data( "item.autocomplete", item ) 
                .append( $( "<a></a>" ).text( item.label ) ) 
                .appendTo( ul ); 
            }   

});

JSON 数组包含 3 个参数( value 、 label 、 extra )。在选择自动完成列表中的元素后,如何获取第三个参数并将其附加到另一个输入文本?

4

2 回答 2

1

使用选择事件。

事件处理程序获得两个参数:

  • 事件对象
  • 一个ui对象,其中包含所选项目的数据ui.item

例子:

$("#auto").autocomplete({
        source:"/autocomplete.php",
        minLength: 5,
        select: function(e, ui) {
            // "ui.item" is the data item
            alert(ui.item.extra);
        }    
});

顺便说一句,您尝试覆盖该_renderItem方法的方式不正确,应该是:

$("#auto").autocomplete({
    source:"/autocomplete.php",
    minLength: 5,
})
.data('autocomplete')
._renderItem = function( ul, item) { 
    return $( "<li></li>" ) 
        .data( "item.autocomplete", item ) 
        .append( $( "<a></a>" ).text( item.label ) ) 
        .appendTo( ul ); 
};
于 2012-04-06T14:10:55.120 回答
1
select: function(e, ui) {
        $('input#anotherInputTextId').val(ui.item.extra) ;
    }    
于 2012-04-07T04:00:56.700 回答