【问题标题】:jQueryUI - Autocomplete not displaying drop-down with jsonjQueryUI - 自动完成不显示带有 json 的下拉菜单
【发布时间】:2013-12-16 17:05:46
【问题描述】:

我正在尝试使用 .jsp 文件进行自动完成,但下拉菜单未显示。

var cod = document.getElementById('item').value;

$('input#item').autocomplete({
    source: function( request, response ) {
        $.ajax({
          url: "autocomplete.jsp?cod="+cod,
          dataType: "json",
          minLength: 2,
          data: {
            maxRows: 12
          },
          success: function(data) {
              alert(data);
              response(data);
          }
        });
      }
});

我在 Chrome 上查看了“网络”,它使用参数调用了 url 并返回 OK,但下拉菜单没有显示。 PS.:来自“alert(data)”的警告对话框也没有出现。

【问题讨论】:

  • 这意味着您正在拨打的电话有问题..尝试输入错误:阻止并查看您是否收到任何错误

标签: jquery json jquery-ui autocomplete


【解决方案1】:

你工作太努力了——做一些你不需要做的事情。并且一些用于自动完成功能的参数被传递给 ajax 函数——例如,minLength。让我们像这样重组这个调用:

$(window).load(function() {
    $('input#item').autocomplete({
        source: 'autocomplete.jsp?maxRows=12',
        minLength: 2,
        select: function (event, ui) {
            alert(ui.item.value + ' ' + ui.item.label);
        },
    });
});

在您的 jsp 中,您将收到一个名为“term”的参数,而不是“cod”。这是自动完成小部件的自动行为。

您的 jsp 将需要返回一个 JSON 数组。这个数组的每个元素也是一个有两个成员的数组,一个“值”和一个“标签”。

【讨论】:

  • 仍然无法正常工作...我输入了一个错误:alert('error') 并且每次我在输入字段中输入内容时都会显示。我的输入字段html:
  • 您的代码有效。我查看了我的代码,发现有一些语法错误。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-01
  • 2013-12-02
  • 1970-01-01
  • 2016-10-27
相关资源
最近更新 更多