Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在JQuery自动完成中使用JSon数组_Javascript_Jquery_Jquery Ui_Jquery Ui Autocomplete - Fatal编程技术网

Javascript 如何在JQuery自动完成中使用JSon数组

Javascript 如何在JQuery自动完成中使用JSon数组,javascript,jquery,jquery-ui,jquery-ui-autocomplete,Javascript,Jquery,Jquery Ui,Jquery Ui Autocomplete,我有一个JSon数组,如下所示: [{"country":"FR","id":2,"latitude":-34.27175846153846,"longitude":54.16125384615385,"postcode":"00000","region1":"DOM-TOM","region2":"Terres australes et antarctiques","region3":"Crozet","region4":"","version":null},{"country":"FR","

我有一个JSon数组,如下所示:

[{"country":"FR","id":2,"latitude":-34.27175846153846,"longitude":54.16125384615385,"postcode":"00000","region1":"DOM-TOM","region2":"Terres australes et antarctiques","region3":"Crozet","region4":"","version":null},{"country":"FR","id":3,"latitude":46.203635000000006,"longitude":5.20772,"postcode":"01000","region1":"Rhône-Alpes","region2":"Ain","region3":"Bourg-en-Bresse","region4":"Bourg-en-Bresse","version":null}, ...
我试图将此数组用作JQuery自动完成的源。以下是我的尝试:

$(function() {
    $("#postcode").autocomplete({
        source : function(request, response) {
            var firstChars = $("#postcode").attr("value");
            $.getJSON("/kadjoukor/geolocations", {
                postcodeFirstChars : firstChars
            }, function(data) {
                console.log(data.postcode);
                response(data.postcode);
            });
        },
        minLength : 3,
    });
});
以下是html:

<input type="text" name="member.geolocation.postcode" value="" id="postcode" placeholder="Code postal" /> 


我想显示这个JSon数组中的postcode变量。有人能帮忙吗?

您应该将结果数组转换为标签值对。在你的情况下,你可以像

source : function(request, response) {
        var firstChars = $("#postcode").attr("value");
        $.getJSON("/kadjoukor/geolocations", {
            postcodeFirstChars : firstChars
        }, function(data) {
            console.log(data.postcode);
            response($.map(data, function (item) {
                    return {
                        label: item.postcode,
                        value: item.postcode
                    };
                }));
        });
    },

$(“邮政编码”).attr(“值”)
应该是
request.term
之后,需要使用
$.map
将数组转换为自动完成所需的数组格式。在@KevinB的api文档中有(曾经?)一个很好的例子,您能提供一个代码片段吗?我不知道在js代码中在哪里使用
request.term
。。。另外,autocomplete需要什么样的数组格式?谢谢。我看到了这个示例(RemoteJSONP),但它只是将结果记录到另一个div中,而我希望结果显示在输入字段中。谢谢你的密码。考虑到json数组,我不确定如何获取postcode变量。似乎data.postcode在console.log中不起作用……不知怎的,
console.log(data.postcode)行导致自动补偿不工作。通过删除此行,它现在可以正常工作。非常感谢拉夫里克!!不客气:)是的,您的示例数据放在方括号中,表示它是一个数组)