jquery 自动完成从本地文件获取数据

jquery autocomplete get data from local file

我正在尝试获取自动完成的数据,但是当我没有产生任何结果时。没有错误,什么都没有。

$(document).ready(function()
        {
            $('#txtAutoComplete').autocomplete({
            delay: 0,
            source: function (request, response) {
                $.ajax({
                    url: "auto.json",
                    dataType: 'json',
                    data: request,
                    success: function( data ) {
                        response( $.map( data, function( item ) {
                            return(item.name)
                        }));
                    }
                }); 
               },  
               minLength: 1
              });   
        });

示例 json 文件是:

[
    {
        "name": "John",
        "value": "Doe"
    }{
        "name": "1",
        "value": "2"
    }{
        "name": "33",
        "value": "44"
    }{
        "name": "name",
        "value": "surname"
    }
]

我已将 auto.json 文件放在与 javascript 文件相同的文件夹中。但是我以后需要使用不同的文件夹。此时我有一个问题:如果我将 url 设置为 "/homeDirectoryPath/auto.json" 会起作用吗?或者如何使用同一项目中另一个文件夹中的文件?

您的 JSON 文件无效 JSON。试试这个:

[
    {
        "name": "John",
        "value": "Doe"
    },{
        "name": "1",
        "value": "2"
    },{
        "name": "33",
        "value": "44"
    },{
        "name": "name",
        "value": "surname"
    }
]

如果您想验证 JSON 数据,请使用 JSONLint。

http://jsonlint.com/

以下对我使用上述 JSON 数据有效。我没有您正在使用的脚本,所以我只是在测试 ajax 函数:

$(document).ready(function() {
                $.ajax({
                    url: "auto.json",
                    dataType: 'json',
                    success: function( data ) {

                                console.log(data);
                        }
                });
});