如何让JQuery Autocomplete与类别一起使用?

时间:2014-02-28 11:36:28

标签: javascript jquery json autocomplete

我有一个输入字段,如:

<input id="categoria" name="nome_categoria" type="text" required minlength="2">

在JS中,我(来自Jquery网站):

$.widget( "custom.catcomplete", $.ui.autocomplete, {
_renderMenu: function( ul, items ) {
  var that = this,
    currentCategory = "";
  $.each( items, function( index, item ) {
    if ( item.category != currentCategory ) {
      ul.append( "<li class='ui-autocomplete-category'>" + item.category + "</li>" );
          currentCategory = item.category;
        }
        that._renderItemData( ul, item );
      });
    }
});

我从PHP获取数据,采用有效的JSON格式:

[{"Label":"Vendas","Category":"Recebimentos"},{"Label":"Fornecedores","Category":"Pagamentos"}]

我尝试了几件事,但没有人使用自动完成功能来处理类别:

$('#categoria').catcomplete({
       delay:0,
       source: 'search.php',   
});

我可以在Chrome开发工具的“网络”标签中看到,我在输入字段中输入的字母正在搜索,但输入表单中没有显示任何内容,所以我尝试了:

$('#categoria').autocomplete({
    minLength:1,
    source: function(request, response) {
       $.ajax({
         url: 'search.php', 
         dataType: 'json',
         data: { palavra : request.term },
         success: function(result) {
              response(result);
         }
       });
   }
});

第二种方法是使用输入中输入的字母过滤从PHP返回的JSON,看起来没问题但是我在字段中得到一个空的下拉框。

我见过类似的问题,包括this one,但到目前为止,没有。如何通过类别获得自动填充功能?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

上面的第一个解决方案效果很好,如果不是“标签”,我使用“标签”而不是“类别”我使用“类别”。