jquery ui-autocomplete 不显示下拉列表

问题描述 投票:0回答:1

我们正在运行 tharuvi.com

在搜索框中,用户界面自动完成下拉菜单突然停止工作。服务器正在返回查询集,但 jquery 没有执行

response
部分。

我的 html 表单:

      <form class="d-flex ps-0 pe-0" method="get" action="{% url 'search-name' %}">
        <input class="form-control reduceboxsize" value="{{ query }}" name="q" type="search" placeholder="Search" id="snametag" aria-label="Search">
          <button class="btn btn-outline-success" name="st" value="{{st.url}}" type="submit">&#x1F50D;</button>
      </form>
    <button class="navbar-toggler btn btn-sm ps-0" type="button" data-bs-toggle="collapse"  data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>

jquery 函数:

function enableautocomplete() {
    ///// search ////// http://jsbin.com/xavatajiku/edit?js,output
    if (document.getElementById('snametag')) {
    $('#snametag').autocomplete({
            minLength: 4,
            source: function (request, response) {
                $.ajax({
                    url: "/sm/shpd/",
                    data: { searchText: request.term, maxResults: 10, shopId: 'organic'},
                    dataType: "json",
                    success: function (data) {
                        console.log('return', data);
                        //response(data);
                        response($.map(data.results, function (item) {
                            console.log('data.results', data.results);

                            return {
                                product_name: item.name,
                                url: item.url,
                                pfimage_thumb: item.photo,
                                ourprice: 6,
                            };
                        }));
                    }
                })
            },
            select: function (event, ui) {
             return false;
                },
            close : function (event, ui) {
                    return false;
                }
        }).data( "ui-autocomplete" )._renderItem = function( ul, item ) {
        console.log(item.url);
            var inner_html = '<div class="row searching-box"><div class="image col-sm-1"><a href="/market/1/'+item.url+'"><img src="' + item.pfimage_thumb + '" height="42" width="42"></a></div><div class="description col-sm-8"><a class="link-decoration-none" href="/market/1/'+item.url+'">' + item.product_name + '<button type="submit" onclick="create_post('+myVars.shId+','+item.products+',\''+item.product_name+'\','+item.ourprice+')" class="btn btn-primary btn-sm">View</button></a></div></div>';
            return $("<li class='list-group-item'></li>")
                    .data("ui-autocomplete-item", item)
                    .append(inner_html)
                    .appendTo(ul);
        };
    }
    };

例如:如果我们在 tharuvi.com 搜索框中输入“palm”,它将显示与查询匹配的产品下拉菜单(ui-自动完成)。现在产品已打印在控制台日志中,但下拉部分不起作用。

任何宝贵的建议都会有帮助。

jquery jquery-ui-autocomplete
1个回答
0
投票

a)下面的代码行似乎没有必要,因此将其删除(也要注意删除相应的右括号):

function enableautocomplete() {
///// search ////// http://jsbin.com/xavatajiku/edit?js,output
if (document.getElementById('snametag')) {

b) 将

data.results
更改为
data

我直接在您的网站上使用了以下代码并且它有效:

$('#snametag').autocomplete({
        minLength: 4,
        source: function (request, response) {
            $.ajax({
                url: "/sm/shpd/",
                data: { searchText: request.term, maxResults: 10, shopId: 'organic'},
                dataType: "json",
                success: function (data) {
                    console.log('return', data);
                    //response(data);
                    response($.map(data, function (item) {
                        return {
                            product_name: item.name,
                            url: item.url,
                            pfimage_thumb: item.photo,
                            ourprice: 6,
                        };
                    }));
                }
            })
        },
        select: function (event, ui) {
         return false;
            },
        close : function (event, ui) {
                return false;
            }
    }).data( "ui-autocomplete" )._renderItem = function( ul, item ) {
        var inner_html = '<div class="row searching-box"><div class="image col-sm-1"><a href="/market/1/'+item.url+'"><img src="' + item.pfimage_thumb + '" height="42" width="42"></a></div><div class="description col-sm-8"><a class="link-decoration-none" href="/market/1/'+item.url+'">' + item.product_name + '<button type="submit" onclick="create_post('+myVars.shId+','+item.products+',\''+item.product_name+'\','+item.ourprice+')" class="btn btn-primary btn-sm">View</button></a></div></div>';
        return $("<li class='list-group-item'></li>")
                .data("ui-autocomplete-item", item)
                .append(inner_html)
                .appendTo(ul);
    };
    
    
    

您网站上的结果:https://prnt.sc/eoLiVv6iGAWO

© www.soinside.com 2019 - 2024. All rights reserved.