自动完成标签不在隐藏元素上显示数据

时间:2019-03-18 12:08:18

标签: javascript jquery html jquery-ui-autocomplete

自动完成标签在显示后未在显示为display:none的隐藏输入字段上不显示数据。

我正在尝试使用下面给出的脚本自动完成MySQL数据库中的数据。在开发人员工具网络控制台中给出正确响应时,它没有显示标签。当我使用.show()方法显示div时,自动完成功能不会显示标签。

    function openSearchDiv(){
        $('.search').show();  
    }

$(document).on('focus','#search',function(){
$(this).autocomplete({
            source: function( request, response ) {
                $.ajax({
                    url: 'products.php',
                    dataType: 'json',
                    method: 'post',
                    data: {
                        name_startsWith: request.term,
                        type: 'type'
                    },
                    success: function( data ) {
                        response( $.map( data, function( item ) {
                                return {
                                    label: item['id'],
                                    value: item['id'],
                                    data : item
                                }
                            }));
                        }
                    });
            },
            autoFocus: true,            
            minLength: 1,
            select: function( event, ui ) {
               // $('#player').val(ui.item.data.player);
               // $('#marks').val(ui.item.data.marks);
            }               
        });
     });
.search {
      display:none;
      margin-top: 20px;
      } 

 <div class="search">
 <input type="text" id="search" placeholder="Type Id" />
 </div>

我已经从display:none属性中检查了这段代码,它运行正常

1 个答案:

答案 0 :(得分:1)

因此,如果您查看my Fiddle,我使用的是jQuery 3.3.1版和jQuery UI 1.12.1版(即撰写时的稳定版本)。

但是在your Fiddle上,您使用的是带有jQuery UI 1.11.4(旧版)的jQuery 3.3.1。这是一个问题,因为在jQuery 3.3.1中,您应该使用jQuery UI 1.12.1。

如果要使用jQuery UI 旧版本,则应使用jQuery 2.2.4或更早版本。 此外,根据您的情况,应将appendTo选项设置为适当的元素/选择器。示例:

$('#search').autocomplete({
  appendTo: $('#search').parent()
  // other options
});

我已经分叉了您的小提琴,您可以检查我的here,在这里我基本上省略了AJAX内容,但是我没有更改任何CSS,而是将 jQuery 2.2.4与jQuery UI 1.11一起使用。 4

我也分叉了Fiddle,并将其更改为使用 jQuery 3.3.1 和jQuery UI 1.12.1 。您可以检查它here