2014-07-25 51 views
2

我一直在尝试使用提供的JSON来使用select2填充我的输入。 这里的JSON:Select2与JSON的AJAX

{ 
"airports": 
[ 
    { 
     "id": "1", 
     "code": "AMQ", 
     "city": "Ambon", 
     "country": "Indonesia" 
    }, 
    { 
     "id": "2", 
     "code": "BJW", 
     "city": "Bajawa", 
     "country": "Indonesia" 
    } 
] 
} 

和HTML代码:

<input class="" type='hidden' value="192" data-init-text='Departing City' name='input' id='depart-airport' style="width: 300px"/> 

而且JS代码:

$(document).ready(function() { 
    $('#depart-airport').select2({ 
    minimumInputLength: 1, 
    ajax: { 
     url: "http://localhost:4000/api/airports.json", 
     dataType: 'json', 
     results: function (data) { 
     return { results: data}; 
     } 
    } 
    }); 
}); 

有控制台没有错误,但我是否尝试输入他们这是总是说“搜索失败”或者什么都没有。 json的数据从未显示过。 你有什么可以解决这个问题吗?感谢的:)

+0

您是否尝试过调试与谷歌Chrome“网络”标签?或者你可以粘贴你的服务器的代码?我们需要更多信息来帮助你。 –

+1

看到这个希望它有帮助:http://jsfiddle.net/LUsMb/3538/ –

回答

0

之前,你在你的jQuery有一个小错误:

$(document).ready(function() { 
    $('#depart-airport').select2({ 
     minimumInputLength: 1, 
     ajax: { 
      url: "http://localhost:4000/api/airports.json", 
      dataType: 'json', 
      results: function (data) { 
       // You had { results: data }, but your actual information is in data.airports 
       return { results: data.airports }; 
      } 
     } 
    }); 
}); 
+0

现在说它的无法读取属性'toUpperCase'的undefined。任何想法来解决这些? –