jQueryUI - 使用json自动完成不显示下拉列表

时间:2013-12-16 17:05:46

标签: jquery json jquery-ui autocomplete

我正在尝试使用.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上查看了“网络”,并使用参数调用了网址,然后返回确定,但下拉菜单没有显示。 PS:来自'alert(data)'的警报对话框也没有出现。

1 个答案:

答案 0 :(得分:0)

你工作太辛苦了 - 做一些你不需要的事情。用于自动完成功能的一些参数将被传递给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数组。该数组的每个元素也是一个包含两个成员的数组,“值”和“标签”。