为什么JQuery不显示我的自动填充字段?

时间:2017-08-18 03:44:48

标签: javascript jquery jquery-ui autocomplete

上下文:我正在尝试使用从服务器发送的数据来设置JQuery自动完成。当用户更改某个字段时,自动填充数据将从后端发送,以便他们可以根据需要选择提供的值。后端代码非常实用,因为我可以看到自动完成数据数组,如果它在前端我console.log(data)

我的问题是,即使前端代码有效地请求和接收自动完成数据,当我使用JQuery的内置自动完成选项时,它从不在前端显示选项。

这是我的代码:

$.ajax({
      type: "GET",
      url:"/autocomplete/"+event.target.id+"/"+$(this).val(),
      success : function(data){
        console.log(data);
        $(event.target.id).autocomplete({
          source: data
        });
      }
});

event.target.id是我要自动填充的输入字段的ID。同样,所有这一切都很好。当我console.log(data)时,它显示了我想用于自动完成的项目数组,但是当我实际运行时

$(event.target.id).autocomplete({source:data});

它没有在前端显示任何自动填充选项。

我是怎么解决这个问题的?我已经停用了我的广告拦截器并在一堆不同的浏览器中尝试过,结果从未显示为标准的下拉列表自动完成。

1 个答案:

答案 0 :(得分:0)

使用@Jaromanda X建议的策略,我发现event.target.id字段返回了我打算自动填充的字段的名称,但它没有包含" #"必须通过JQuery表示id。功能代码现在看起来像这样:

$.ajax({
      type: "GET",
      url:"/autocomplete/"+event.target.id+"/"+$(this).val(),
      success : function(data){
        console.log(data);
        $("#"+event.target.id).autocomplete({
          source: data
        });
      }
});

是的,它感觉有点hacky,但运行的代码实际上是运行的代码。