2

我在让自动完成功能专门用于 json 文件时遇到了一些麻烦。每当在文本框中输入内容时,它都会出现以下错误

网址未定义

以下是我的 jQuery 代码

$(document).ready(function() {
$('#autocomplete').autocomplete({
    minChars: 1,
    source: function(request, response) {
            var url='dataa.json';

        $.getJSON(url,{term: request.term},function(data){

            response($.map(data.ledgers, function(item) {
            return item.value;
        }));
    })
    }
});
});

和 JSON

{
"ledgers": 
[
{
    "id":"2001",
    "name":"Bharat"
},
{
    "id":"2003",
    "name":"Gaurav"
},
{
    "id":"2002",
    "name":"Pankaj"
},
{
    "id":"2022",
    "name":"Purchase"
},
{
    "id":"2007",
    "name":"Ram"
},
{
    "id":"2008",
    "name":"Ramesh"
},
{
    "id":"2009",
    "name":"Suresh"
}
]}
4

2 回答 2

2

您的JSON 文件格式需要包含valuelabel(或两者)。更改namevalue,它应该可以正常工作。

$('#autocomplete').autocomplete({
    minChars: 1,
    source: function(request, response) {
            var url='dataa.json';

        $.getJSON(url,{term: request.term},function(data){
            response($.map(data.ledgers, function (value, key) {
                return {
                    label: value,
                    value: key
                };
            }));
        })
    }
});
于 2012-11-03T16:23:41.120 回答
0

尝试'use strict';$(document).ready(). 这可能会指出问题所在......

return item.value;

item没有 a value,尝试返回idor name,它确实有。

于 2012-11-03T16:08:47.640 回答