我有自动完成输入的下一个功能:
$("#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)。如何在选择自动完成列表中的元素后立即抓取第三个参数并将其附加到另一个输入文本?
答案 0 :(得分:1)
使用select事件。
事件处理程序传递了两个参数:
ui
对象,其中包含ui.item
示例:
$("#auto").autocomplete({
source:"/autocomplete.php",
minLength: 5,
select: function(e, ui) {
// "ui.item" is the data item
alert(ui.item.extra);
}
});
BTW,您尝试覆盖_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 );
};
答案 1 :(得分:1)
select: function(e, ui) {
$('input#anotherInputTextId').val(ui.item.extra) ;
}