首页 > 解决方案 > onChange / onInput 替代品?

问题描述

我正在创建一个打字测试页面并遇到一个小问题。

我试图在用户键入时启动计时器,并且使用 onInput 可以工作,但问题是每次我键入 textArea 时它都会注册,这会导致 starttimer 函数重复自身。

onChange 有效,但仅在我在页面外部单击后才有效,这很有意义,但不是我要寻找的。我需要在用户开始打字后立即启动计时器。也可以使用 onChange 停止功能,但在我点击页面外部后计时器开始。

是否有适合我正在寻找的 JS 事件,或者有没有办法更改 onInput 或 onChange 来解决我遇到的问题。

JavaScript

document.getElementById("test-area").onchange = function () {
      startTimer(1);
};

谢谢你。

标签: javascript

解决方案


像这样尝试,在 JavaScript 中,使用 addEventListener() 方法: addEventListener() 方法将事件处理程序附加到指定元素。

document.getElementById("test-area").addEventListener("change", function () {
 if(!this.value.length){
    startTimer(1);
 }
}, {once : true});

推荐阅读