【发布时间】:2018-10-11 20:45:29
【问题描述】:
我尝试进行自动完成输入,就像我过去有时所做的那样。 但是今天我不得不面对一个我无法真正理解的问题。
$( "#search_collab_autocomplete" ).autocomplete({
appendTo :$('.form-add-new-user'),
source : function(requete, response){
$.ajax({
url : $('.form-add-new-user').data('url'),
dataType : 'json',
data : {
email : $('#search_collab_autocomplete').val(),
},
success : function(data){
var arr = [];
var i = 0;
var fullObj = data;
$.each(data, function(index, value){
var obj = {
id: index,
email: value,
};
arr[i] = obj;
i++;
});
response(arr, fullObj);
},
select: function( event, ui ) {
console.log("hi");
}
});
},
minLength: 3
}).data( "ui-autocomplete" )._renderItem = function( ul, item ) {
return $( "<li></li>" ).data("item.autocomplete", item)
.append( "<a>"+item.email + "</a>")
.appendTo( ul );
};
我有这段代码,它是部分工作,因为我可以在我的输入字段下方看到结果列表。
但是当我点击/当我用键盘选择一个项目时,我看不到任何事情发生......甚至不是简单的console.log('hi');....
我是不是用错了select?
【问题讨论】:
-
您的商品必须在
response()发送的结果数据中成对出现在response() -
不过,
select事件永远不会触发... -
您可能需要检查所有语法是否正确。如果没有数据或不正确的数据传递给
response(),则无法显示任何项目,因此无法选择任何项目。这将阻止select事件触发。 -
但是整个
autocomplete工作正常,我可以使用它。唯一的问题是这个事件没有被触发,我找到了另一种实现我想要的方法..
标签: javascript jquery ajax jquery-ui autocomplete