AJAX. Ошибка в консоле, итерация проходить не один раз. Помогите пожалуйста
Мне нужно показать информацию по введенной стране в инпуте, при нажатии кнопки. Показывает верно, но не корректно работает проверка на ошибку, если пользователь введет неправильное название или пустую строку, должно выходить в консоле ошибка. Ошибка выходить не один раз и даже если ошибки нет, не могу понять почему. Спасибо за любую помощь.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="js/jquery-3.5.1.min.js"></script>
<script src="js/script.js"></script>
</head>
<body>
<p><b>Name: </b><span id="name"></span></p>
<p><b>Region: </b><span id="region"></span></p>
<p><b>Subregion: </b><span id="subregion"></span></p>
<p><b>Capital: </b><span id="capital"></span></p>
<p><b>Flag: </b><span id="flag"></span></p>
<input id="country-name" type="text">
<button id="show">Show information</button>
<script>
$(() => {
$.ajax({
method: 'GET',
url: 'https://restcountries.eu/rest/v2/all',
success: response => {
$('#show').on('click', () => {
for (let i in response) {
if ($('#country-name').val() === response[i]['name']) {
$('#name').text(response[i]['name']);
$('#region').text(response[i]['region']);
$('#subregion').text(response[i]['subregion']);
$('#capital').text(response[i]['capital']);
$('<img>')
.attr('src', response[i]["flag"])
.css({ width: '70px', height: '50px', position: 'absolute', 'margin': '-15px 0 0 20px' })
.appendTo('#flag')
} else {
console.log('ERROR')
}
}
});
},
});
});
</script>
</body>
</html>
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
Вы выводите ошибку для всех стран, не совпадающих с инпутом.
for (let i in response) {
if ($('#country-name').val() === response[i]['name']) {
$('#name').text(response[i]['name']);
$('#region').text(response[i]['region']);
$('#subregion').text(response[i]['subregion']);
$('#capital').text(response[i]['capital']);
$('<img>')
.attr('src', response[i]["flag"])
.css({ width: '70px', height: '50px', position: 'absolute', 'margin': '-15px 0 0 20px' })
.appendTo('#flag');
return;
}
}
console.log('ERROR')