不断获取Uncaught TypeError:非法调用?

时间:2019-03-31 08:50:52

标签: javascript jquery google-chrome

如果文本框为空,则尝试禁用按钮时,我在Google Chrome控制台中收到此错误:

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

我在这里做什么错了?

2 个答案:

答案 0 :(得分:1)

getElementById需要调用上下文document。使用.bindr绑定到document

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

答案 1 :(得分:0)

您可以将r = document.getElementById替换为r = x => document.getElementById(x)