当我动态创建文本框(input5)时,下一个函数可以正常工作
input5.onblur = function() {validate_quantity(this)}
但下一个,不起作用
input5.onkeydown = function() {validateNumbers(event)}
当我加载页面时,我在html中有第一个文本框,带有
onblur="validate_quantity" onkeydown="validateNumbers(event)
并且在第一个文本框中工作得很好,我的input5.onkeydown行出了什么问题?
答案 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);