jQuery ui autocomplete没有触发select事件

时间:2014-05-23 09:45:14

标签: javascript jquery jquery-ui jquery-ui-autocomplete asp.net-web-api2

我有一个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;
}

自动填充本身工作正常。这只是一场没有被解雇的事件。我尝试使用bindon绑定到该事件,但这也没有帮助。我也在change事件中尝试了这个,并且也没有被解雇,或者它看起来对我来说。我无法弄清楚事件没有解雇的原因。

3 个答案:

答案 0 :(得分:2)

我想你也需要添加它......

$( "#AppName" ).on( "autocompleteselect", function( event, ui ) {} );

You can check it out here

答案 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);
        }
    });
})