У меня есть поле ввода EasyAutocomplete, в котором используется почтовый индекс Великобритании, полученный из API postcodes.io . Я использую функцию автозаполнения (api.postcodes.io/postcodes/ndominput‹/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 выдает ошибку и делает поле ввода непригодным для использования, если страница не обновлена. Я пытаюсь найти способ определить, равен ли результат значению NULL до выполнения EasyAutocomplete.
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"/>