jquery ui autocomplete不填充数据

时间:2013-06-04 06:12:40

标签: jquery jquery-ui jquery-ui-autocomplete

我有jQuery UI自动完成代码如下:

 $("#keyword").autocomplete({
                source: function(request, response) {
                    $.ajax({
                        url: "<?php echo base_url(); ?>index.php/formhandler/autocomplete",
                        data: {term: request.term, data: $("#city").val()},
                        dataType: "json",
                        success: function(data) {
                            response($.map(response, function(item) {
                                return {
                                    label: item,
                                    value: item
                                }
                            }));
                        }
                    })
                }
            });

我的回答如下:

 ["result1"]["reusult2"]["result3"]["result4"]["result4"]

如何使用此自动填充关键字字段?

3 个答案:

答案 0 :(得分:1)

您似乎没有使用ajax成功函数的参数数据。打开JavaScript控制台(Chrome中的F12)并检查是否有任何错误。

$("#keyword").autocomplete({
     source: function(request, response) {
     $.ajax({
       url: "<?php echo base_url(); ?>index.php/formhandler/autocomplete",
       data: {term: request.term, data: $("#city").val()},
       dataType: "json",
       success: function(data) {
       //check what data contains. it should contain a string like "['val1','val2','val3','val4']"
       //the next line should use $.map(data and not $.map(response
       response($.map(response, function(item) {
         return {
           label: item,
           value: item
         }
    }));
 }
 })
}
});

答案 1 :(得分:0)

为什么使用$ .ajax。您只需将$ .get中的数据作为源。

$("#keyword").autocomplete({
              source : function (request, response) {
              $.get("<?php echo base_url(); ?>index.php/formhandler/autocomplete", {term: request.term, data: $("#city").val()}, function (data) {
                response(data);
            });
         }
      });

答案 2 :(得分:0)

您需要组合这些数组&gt;使用:

$.merge

您可能必须使用循环。一个例子可以是:

var first = ['a','b','c'];
var second = ['d','e','f'];
$.merge( $.merge([],first), second);

哪个会输出:

["a","b","c","d","e","f"]