javascript - Jquery UI 自动完成 JSON 文件的结果

标签 javascript jquery ajax json autocomplete

我在成功解析 JSON 文件以在 JQuery UI 自动完成中使用时遇到很大困难

请参阅我的开发页面:http://www.zyredesign.com/autocomplete

JSON 的组织方式并不像我希望的那样,因为项目键是 ID,例如:

{"140":"阿巴斯", "375":"讴歌" }

等等......

这是我的 JavaScript 尝试:

$(document).ready(function() {


    $('#cars').autocomplete({
        source: function()
        {


            $.getJSON('json.json', function(data)
            {
                cars_array = new Array();

                $.each(data, function(k, v) { 

                    cars_array.push(v);

                 })

                alert( cars_array);

                return cars_array;
            })


        },
        minLength: 3,
        focus: function( event, ui ) {},
        select: function( event, ui ) {
            $('#suggestions').html(ui);

            return false;
        }
    });

});

/*
function get_json()
{
var items = new Array();

$.getJSON('json.json', function(data) {
  var items = [];


  alert(  eval ("(" + data + ")") ); 

 // $.each(data, function(key, val) {
    //items.push('<li id="' + key + '">' + val + '</li>');

 // });

  $('<ul/>', {
    'class': 'my-new-list',
    html: items.join('')
  }).appendTo('body');
});

return items;
}
*/

任何帮助将不胜感激,谢谢!

最佳答案

您为 source: 属性提供的函数不返回值。 $.get() 函数可以,但不会到达源属性。

    source: function()
    {
        $.getJSON('json.json', function(data)
        {
            cars_array = new Array();
            $.each(data, function(k, v) { 
               cars_array.push(v);
            })
            return cars_array;
        })
        //You need to return something here
    }

此外,您以同步模式使用异步调用 json 文件可能会出现问题。换句话说,考虑一下:

    $.getJSON('json.json', function(data)
    {
        cars_array = new Array();
        $.each(data, function(k, v) { 
           cars_array.push(v);
        })

        //Now you definitely have the cars so you can do the autocomplete
        $('#cars').autocomplete({
            source:cars_array,
            minLength: 3,
            focus: function( event, ui ) {},
            select: function( event, ui ) {
            $('#suggestions').html(ui);
            return false;
        }
    });

关于javascript - Jquery UI 自动完成 JSON 文件的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10824943/

相关文章:

javascript - knockoutjs 订阅不起作用?

javascript - 字母/数字组合的正则表达式

javascript - 如何在 Javascript 中获取每个月的指定日期?

java - 使用 ajax jquery Struts-1 设置 Action Class 属性

javascript - 没有填充的参数无论如何都会被填充?

javascript - 使用ajax更新内容后jquery点击事件停止工作

javascript - 基金会数据警报框不会关闭

javascript - 无法通过字符串形式的名称访问对象

javascript - Jquery 列表框更改事件不会在键盘滚动时触发

来自毫秒和时区的Javascript日期