【问题标题】:jQuery ui autocomplete not firing select eventjQuery ui自动完成不触发选择事件
【发布时间】:2014-05-23 09:45:14
【问题描述】:

我有一个 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 事件上尝试过这个,也没有被解雇,或者在我看来是这样。我不知道为什么事件没有触发。

【问题讨论】:

  • 会不会是 jQuery 1.9.1 的问题?这是link to the issue
  • 对不起,我忘了提...我使用的是 jQuery 2.1.1 和 jQuery ui 1.10.4

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


【解决方案1】:

我想你也需要添加这个...

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

You can check it out here

【讨论】:

  • 我使用的是旧版本的 jQuery,所以使用了 bind() 而不是 on()
【解决方案2】:

我遇到了同样的问题。对我来说,问题是辅助自动完成功能针对的是相同的元素。

在您的情况下,可能是 ('something').autocomplete() 也命中了 #AppName 元素。

【讨论】:

    【解决方案3】:

    看起来,你必须从源函数返回响应

    $(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);
            }
        });
    })
    

    【讨论】:

    • 官方jQuery ui示例中没有看到这个,但是试了一下还是不行。
    猜你喜欢
    • 2017-02-16
    • 2011-05-13
    • 1970-01-01
    • 2018-10-11
    • 1970-01-01
    • 1970-01-01
    • 2014-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多