我有一个jQuery自动完成功能,select
事件永远不会被触发。
脚本如下所示:
$(function() {
$('#AppName').autocomplete({
minLength: 0,
source: function(request, response) {
var url = "/api/AddAppAjax";
$.getJSON(url, { term: request.term }, function(data) {
response(data);
})
},
select: function (event, ui) {
alert(ui.item.id); <---- !This is never hit!
$('#selected-id').val(ui.item.id);
}
});
})
Web API控制器操作如下所示:
public IEnumerable<object> Get(string term)
{
var appManager = new AppManager();
var appList = appManager.GetAllApps().AsQueryable().ToList();
var appListJson = from fbApp in appList
select new
{
id = App.Id,
value = App.AppName,
label = App.ToString()
};
return appListJson;
}
自动填充本身工作正常。这只是一场没有被解雇的事件。我尝试使用bind
和on
绑定到该事件,但这也没有帮助。我也在change
事件中尝试了这个,并且也没有被解雇,或者它看起来对我来说。我无法弄清楚事件没有解雇的原因。
答案 0 :(得分:2)
我想你也需要添加它......
$( "#AppName" ).on( "autocompleteselect", function( event, ui ) {} );
答案 1 :(得分:-1)
我遇到了同样的问题。对我来说问题是辅助自动完成功能针对同一个元素。
在你的情况下,它可能是('某事')。autocomplete()也会击中#AppName元素。
答案 2 :(得分:-2)
看起来,您必须从源函数返回响应
$(function() {
$('#AppName').autocomplete({
minLength: 0,
source: function(request, response) {
var url = "/api/AddAppAjax";
$.getJSON(url, { term: request.term }, function(data) {
return response(data);
})
},
select: function (event, ui) {
alert(ui.item.id); <---- !This is never hit!
$('#selected-id').val(ui.item.id);
}
});
})