@valitskiydmitriy

Проверка на наличие элементов перед выполнением скрипта js?

Есть вот такой кусок кода
function check_date() {
        var a = year.value | 0,
            c = month.value | 0;
            var ch = document.getElementsByName('month','year');
            if (!ch) {
        console.warn('Element "' +ch + '" not found');
        return;
    }

        md = (new Date(a, c, 0, 0, 0, 0, 0)).getDate();
        a = document.getElementById("day").selectedIndex;
        set_select("day", md, 1, a)
    };

    if (document.addEventListener) {

        year.addEventListener('change', check_date, false);
        month.addEventListener('change', check_date, false);

    } else {
        year.detachEvent('onchange', check_date);
        month.detachEvent('onchange', check_date);
    }

}


При загрузке всех страниц кроме страницы регистрации ошибка, null, посоветовали сделать проверку на наличие элементов, написал по образцу который был, но всеравно не работает, перепроверил и всеравно, что я делаю не так?
  • Вопрос задан
  • 161 просмотр
Пригласить эксперта
Ответы на вопрос 1
var empty = document.getElementsByName('not-existing-name');
console.log(empty, !!empty); 
//посмотрим что там 
//и что получится при приведении к булеву типу 
//(как в проверке if)
//[], true

как исправить?
if (!ch.length) {
  console.warn('Element "' +ch + '" not found');
  return;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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