javascript - 不断收到未捕获的类型错误 : Illegal invocation?

标签 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();

我在这里做错了什么?

最佳答案

getElementById 需要 document 的调用上下文。使用.bindr绑定(bind)到document:

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

关于javascript - 不断收到未捕获的类型错误 : Illegal invocation?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55439243/

相关文章:

ruby - 在 W3C 模式下(Selenium::WebDriver::Error::UnknownCommandError)无法在 Cucumber Ruby 中使用 Selenium ChromeDriver 调用非 W3C 标准命令

css - 位置 :fixed not working in Google Chrome

javascript - 将时间转换为可读取的时间,需要不断地向上和向下计数

javascript - Protractor:根据innerhtml获取元素

php - 保存用户选择的 jQuery 列表(如购物车)

jquery - 使用 <audio> 时,.play() 之后 jquery 回调是否可用?

javascript - Mac OS X 上的 Chrome 扩展 : Window popups disappear

javascript - 如何通过 JS 变量的值来增加 CSS 值?

javascript - 如何使用 Request-Promise 将一个 API 的响应作为请求参数传递到另一个 API 中

jquery - 动态设置 ui datepicker max/minDate