没有填充jQuery自动完成与数据集的ajax响应

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

我面临着jquery自动完成问题,ajax数据作为源代码。返回的数据是正确的,并且不会发出任何错误。但结果仍未按预期显示。

我已经关注了与此问题相关的所有stackoverflow问题。一切都指向我所做的一切。所以这不是任何问题的重复。

如果我使用局部变量数据作为数据源,一切都按预期工作。它不是UI的问题,因为相同的代码用于局部变量和ajax数据。

我的代码是:

$("#dTSearch").autocomplete({
        source: function( request, response ) {
          $.ajax({                
            type: "POST",
              url: "{{path('dataSearch')}}",
              dataType: "json",
              data: {
                type: "dashboardType",
                searchTerm: $("#dTSearch").val()
              },
            success: function (data) {                  
              if(data.status == 200) {
                console.log(data.data);
                //response( data.data );
                //var dataSet = $.parseJSON(data);
                response($.map(data.data, function (item, i) {
                  //alert(item.value);
                  return {
                      id: item.id,
                      label: item.label,
                      value: item.value
                    };
                  })
                );
              }
            },
            error: function (data) {
              alert('error!');
              console.log(data);
            }
          });
        },
        minLength: 3,
        select: function( event, ui ) {
          alert(ui.item.value);
          return false;
        },
        open: function() {
          $(this).autocomplete('widget').css('z-index', 100);
          return false;
        }
      });

      $("#dTSearch1").autocomplete({
        source: dashboardTypes,
        minLength: 3,
        select: function( event, ui ) {
          $("#onlyFunctionalDiv").show();
        },
        open: function() {
          //$( this ).removeClass( "ui-corner-all" ).addClass( "ui-corner-top" );
          $(this).autocomplete('widget').css('z-index', 100);
          return false;
        }
      });

我在“Response”方法中使用了直接“响应”方法和“Map”。似乎没有什么工作。

当我安慰结果并提出警报时,一切似乎都没问题。

下图显示了我使用的结果和控制台日志。

图1:enter image description here

图2:enter image description here

在第一张图片中,源是局部变量,它在用户开始输入时显示结果。下面是同一局部变量的控制台日志。

第二张图片是ajax响应。当用户键入“func”时,它正在调用ajax并且响应正在打印。但结果并没有按照应有的方式显示。绿色框表示局部变量的响应,红色框表示ajax响应数据。两者似乎都是一样的。但是缺少某些东西,并且在结果集可用时它没有显示结果。

有人可以帮助我,这有什么不对吗?

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

问题已解决。问题是落后的分号“;”在响应方法的return语句的末尾。

代码的变化是:

response($.map(data.data, function (item, i) {
    //alert(item.value);
    return {
        id: item.id,
        label: item.label,
        value: item.value
    }
  })
);

我在return语句的末尾删除了尾部分号。

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