Mesuti
@Mesuti

Почему поиск в массиве undefined?

Привет!
Почему выходит ошибка?
Возможно ли понять ошибку в строке без верстки?

Uncaught TypeError: Cannot read property 'indexOf' of undefined
5c8adb52a46b9194272562.png
Код js + jquery.
Как все работает:
function checkCountry() запускается при клике на input и проверяет массив с кодами стран.
Если в input есть цифра с кодом страны, то картинка .phone-icon изменит src на тот что в массиве.

Это все перестало работать, когда все id заменил классами, чтобы вообще все формы на сайте подхватились.

const countries = [
    { code: '+380', flag: '/ukraina.jpg' },
    { code: '+7', flag: '/russiya.jpg' },
    { code: '+375', flag: '/belorussiya.jpg' },
    { code: '+', flag: '/phone.png' },
  ];

  function checkCountry() {
    const country = countries.find(n => !inputCode.value.indexOf(n.code)); // ВОТ ЗДЕСЬ РУГАЕТСЯ
    $('.phone-icon').attr('src', 'country ? country.flag : \'\'');
  };
  • Вопрос задан
  • 81 просмотр
Решения вопроса 1
byte916
@byte916
Ошибка говорит о том, что вы пытаетесь из переменной равной undefined получить метод indexOf.
У вас inputCode или inputCode.value равны undefined.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы