【问题标题】:JQuery autocomplete select event not fired未触发 JQuery 自动完成选择事件
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-02-16
    • 1970-01-01
    • 1970-01-01
    • 2011-05-13
    • 1970-01-01
    • 1970-01-01
    • 2011-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多