Продолжаем получать неперехваченную ошибку типа: незаконный вызов?

#javascript #jquery #google-chrome

#javascript #jquery #google-chrome

Вопрос:

Я получаю эту ошибку в консоли Google Chrome при попытке отключить кнопку, если текстовые поля пусты:

 function isEmpty() {
  var r = document.getElementById;
  if (r("box1").value.length >= 1 amp;amp; r("box2").value.length >= 1 amp;amp; r("box3").value.length >= 1 amp;amp; r("box4").value.length >= 2 amp;amp; r("box5").value.length >= 2 amp;amp; r("box6").value.length >= 3 amp;amp; r("box7").value.length >= 1)
    r('#add').disabled = false
  else
    r('#add').disabled = true
  setTimeout(isEmpty, 250)
}
isEmpty();
  

Что я здесь делаю не так?

Ответ №1:

getElementById требуется вызывающий контекст document . Используйте .bind для привязки r к document :

 var r = document.getElementById.bind(document);
  

Ответ №2:

Вы можете заменить r = document.getElementById на r = x => document.getElementById(x) .