当我动态创建文本框(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/