jQuery自动完成和本地获取的json数据

时间:2013-04-25 11:28:05

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

我正在努力使用jQuery UI Autocomplete并从存储从json数组返回的所有数据的变量中读取自动完成值。这就是JavaScript的样子:

function populate_branch(){
     $.get('/branch/list', {bank_name : $("#select_bank_name").val()}, function(branch_data){
        branch_index = branch_data;
     },"json");
};

for( var i = 0; i < branch_index.length; i++ )
  branch_autocomplete += "" + "\'" + branch_index[i].branch_code + "\'" + "},";

$("#branch_auto_complete").autocomplete({
            source: branch_autocomplete
});

当我尝试使用自动完成文本框时会发生什么事情我的控制台做了一些非常奇怪的事情,它会返回:

  

//本地主机:3000 /未定义%7B'label ':' 301105 '%7D,%7B'label': '301205' %7 ... '标签': '639625' %7D,%7B'label': '639845' %7D,%7B'label ':'?639948' %7D,术语= 41   404(未找到)

任何帮助?

2 个答案:

答案 0 :(得分:0)

你可以尝试这种方式。

$.ajax({
     url: '/branch/list',
     type: "GET",
     data: {bank_name : $("#select_bank_name").val()} ,
     dataType: "json",
     async: false,
     success: function(dataType) { 

          for( var i = 0; i <  branch_index.length; i ++ ){
              index_branch_code[i] = branch_index[i].branch_name + " ("+ branch_index[i].branch_code + ")";
          }

         $("#branch_auto_complete").autocomplete({
              minLength: 0,
              source: branch_code,
         });
     }
}); 

答案 1 :(得分:0)

这就是我做的工作,

var branch_index;
var branch_autocomplete, branch_name;
var index_branch_code = new Array();
function populate_branch(){
     $.get('/branch/list', {bank_name : $("#select_bank_name").val()}, function(branch_data){
        branch_index = branch_data;
        for( var i = 0; i <  branch_index.length; i ++ )
        {
            index_branch_code[i] = branch_index[i].branch_name + " ("  + branch_index[i].branch_code + ")";
        }
     },"json");
};

$("#branch_auto_complete").autocomplete({
      minLength: 0,
      source: branch_code,
});

我只需要将所有数据推送到数组中并创建一个等于index_branch_code的新变量,以便浏览器将变量视为平面文件而不是动态。