javascript - onkeydown 不起作用,onblur 起作用

标签 javascript

当我动态创建文本框(input5)时,下一个函数起作用

input5.onblur = function() {validate_quantity(this)}

但下一个不起作用

input5.onkeydown = function() {validateNumbers(event)}

当我加载页面时,我有一个 html 格式的第一个文本框,其中

onblur="validate_quantity" onkeydown="validateNumbers(event)

并且两者在第一个文本框中都工作得很好,我的 input5.onkeydown 行有什么问题吗?

最佳答案

您显示的代码用于高度弃用的 JS 触发器处理。这是我们在 HTML4.01 (1998) 时代进行事件处理的方式,但它不是现代 HTML 和 JS 中进行事件处理的方式。

现代方法是使用事件监听,使用 addEventListener (和 removeEventListener )在一些页面脚本中运行(在 </body> 之前加载,以便可以找到需要通过 document.getElementById 或 document.querySelector 找到的任何元素):

var userInput = document.getElementById("userinput");

function dataHandler(evt) {
  var quantity = userInput.value;
  if (validateQuantity(quantity)) {
    // do things
  }
}

userInput.addEventListener("blur", dataHandler);
userInput.addEventListener("keydown", dataHandler);

关于javascript - onkeydown 不起作用,onblur 起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34026236/

相关文章:

javascript - range.select 在 IE10 上无法正确突出显示文本

javascript - 如何使用 axios 将数组从 javascript 传递到 Laravel Controller

javascript - NodeJS buffer.slice() 不是一个函数?

javascript - Hello World - Backbone + Firebase + Backfire

javascript - 当我创建其他对象的类对象时,一个数组中的类对象会发生更改

javascript - 悬停在 div 上时重复动画

php - 当用户通过 facebook 使用连接时无法从网站注销用户

javascript - 使用 Firebase Firestore 为每个在 Javascript 中动态创建的行分配一个文档 ID

javascript - 在没有超时的情况下更新 $scope?

javascript - 使用对象数组查找每个国家/地区的大陆