onkeydown不工作,onblur工作

时间:2015-12-01 17:20:59

标签: javascript

当我动态创建文本框(input5)时,下一个函数可以正常工作

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

但下一个,不起作用

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

当我加载页面时,我在html中有第一个文本框,带有

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

并且在第一个文本框中工作得很好,我的input5.onkeydown行出了什么问题?

1 个答案:

答案 0 :(得分:0)

您要显示的代码是针对高度弃用的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);