EasyAutocomplete:检测JSON属性是否为空

问题描述 投票:0回答:1

我有一个EasyAutocomplete输入字段,该字段输入通过postcodes.io API检索的英国邮政编码。我正在使用自动完成功能(api.postcodes.io/postcodes/{input}/autocomplete),该功能以以下格式返回给定输入的可能匹配项列表。

输入:“ a”

输出:

{
    "status": 200,
    "result": [
        "AB10 1AB",
        "AB10 1AF",
        "AB10 1AG",
        "AB10 1AH",
        "AB10 1AL",
        "AB10 1AN",
        "AB10 1AP",
        "AB10 1AQ",
        "AB10 1AR",
        "AB10 1AS"
    ]
}

但是,如果没有匹配的邮政编码,结果将返回null(请注意,状态仍为200)。

输入:“ asdasdasdasdas”

输出:

{
    "status": 200,
    "result": null
}

我编写的代码可以成功检索邮政编码,但是当我键入与任何邮政编码都不匹配的内容时,EasyAutocomplete会引发错误,并且除非刷新页面,否则输入字段将不可用。我试图找到一种在EasyAutocomplete执行之前检测结果是否为null的方法。

JavaScript:

function postcodeLookup() {
    var options = {
        url: function(phrase) {
            if (phrase !== "") {
                phrase.replace(/\s/g, "");
                return "https://api.postcodes.io/postcodes/" + phrase + "/autocomplete";
            }
        },

        ajaxSettings: {
            dataType: "json"
        },

        listLocation: "result",

        requestDelay: 300
    };

    return options;
}

$("#p-pc").easyAutocomplete(postcodeLookup());

输入字段:

<input id="p-pc" placeholder="Postcode" maxlength="10" name="pc"/>
javascript jquery json ajax easyautocomplete
1个回答
0
投票

如果不发出请求,您将无法提前知道将得到一个空数组还是非空数组。也许还要添加easyAutoComplete(在您实际发出请求的地方)。

© www.soinside.com 2019 - 2024. All rights reserved.