未触发 JQuery 自动完成选择事件

Posted

技术标签:

【中文标题】未触发 JQuery 自动完成选择事件【英文标题】:JQuery autocomplete select event not fired 【发布时间】: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 工作正常,我可以使用它。唯一的问题是这个事件没有被触发,我找到了另一种实现我想要的方法.. 【参考方案1】:

您的“选择”附加到 $.ajax。它必须与“source”和“minLength”处于同一级别。

【讨论】:

以上是关于未触发 JQuery 自动完成选择事件的主要内容,如果未能解决你的问题,请参考以下文章

选择时jQuery自动完成触发器返回

jQuery 自动完成触发更改事件

在jq中,当触发点击事件后,在此事件没完成之前,不能再触发点击事件,在事件完成后才能再次点击,该怎么弄

自动选择单一匹配jQuery UI自动完成组合框

jquery怎么自动触发radio的点击事件

jquery怎么自动触发radio的点击事件