jQuery的自动完成不显示结果

时间:2018-08-25 08:12:06

标签: javascript jquery

当我输入未显示的结果时,我尝试通过id类别使jquery过滤器自动完成,如下图所示:

result autocomplete

当我点击标签网络时,我得到了如下图所示的数据: json data

这是我的代码javascript:

<script type="text/javascript">
$(function() {
  $(".keyword").autocomplete({
    source: function(request, response) {
      $.ajax({
          url: "search/autocomplete",
          type: "GET",
          dataType: "json",
          data: {'id':1},
          success: function(data) {
              response($.map(data, function(item) {
                return {
                  label: item.name,
                  value: item.id
              };
              }));
          }
      });
    },
    select:function(event,ui) {
      $(".keyword").val(ui.item.label);
      return false;
    },
    minLength: 2,
  }).bind('focus', function () {
    $('.ui-autocomplete').css('z-index','9999').css('overflow-y','scroll').css('max-height','300px');
    // $('.ui-autocomplete').css('background','#09121a').css('color','#fff');
    // $('.ui-menu .ui-menu-item-wrapper').css('padding','11px 1em 3px 1.4em !important');
    // $(this).autocomplete("search");
    // var btncategory = $('.btn-category').width();
    // var left = '-'+btncategory+'px';
  });
});
</script>

如果我键入“ a”-我什么也看不到,但是当我删除“ a”时-我会看到全部三个。因此,看起来jQuery并不知道它应该在object.name中查找值。

1 个答案:

答案 0 :(得分:0)

正如Tan Duong所说,您的回复仅包含名为value的属性。它找不到nameid,因此您的结果显示空白数据。

将您的成功功能更改为此:

success: function(data) {
          response($.map(data, function(item) {
            return {
              label: item.value,
              value: item.value
          };
          }));
      }