Javascript 检测DOM何时连续更改输入值

Javascript 检测DOM何时连续更改输入值,javascript,Javascript,所以,我有一个输入栏,如果它被修改了,我想继续搜索它。我检查了一些stackoverflow问题,比如,我检查了这件事 它第一次工作,但我需要不断检查是否有更新。有办法循环吗?您可以使用时间间隔: var oldVal = document.getElementById("yourInput").value; function check(){ if(document.getElementById("yourInput").value !== oldVal){ alert

所以,我有一个输入栏,如果它被修改了,我想继续搜索它。我检查了一些stackoverflow问题,比如,我检查了这件事


它第一次工作,但我需要不断检查是否有更新。有办法循环吗?

您可以使用时间间隔:

var oldVal = document.getElementById("yourInput").value;
function check(){
    if(document.getElementById("yourInput").value !== oldVal){
        alert("value changed");
    }
}

setInterval(check, 1000);
代码应该是自解释的:)

或者,您可以绑定更改或输入事件(但如果您使用javascript更改值,则这些事件将不起作用)。很抱歉在此示例中使用jQuery:)


您是说
输入
标记的值发生了变化吗?在这种情况下,您不是在谈论DOM被更改。尝试
onKeyDown
事件处理程序

document.getElementById('input').addEventListener('keydown', function() {
  // Perform search
});

不会捕获细微的更改形式,例如用户选择子字符串并使用鼠标将选择拖动到输入的不同部分。没有“更改输入”事件。有
change
,但只有当输入模糊时才会触发。如果你不知道最好不要说什么。你可以在谷歌上查到。中不支持输入事件的唯一问题IE@VytautasButkus-请提供链接。我在谷歌上找不到任何东西。@broofa哇,现在你真的很蠢。我为您提供有关事件存在信息的链接。您可以在Stackoverflow(只需打开控制台)$(“输入”).first().on(“输入”,function(){console.log(“我真的工作”)})上尝试它,但您仍然在胡说八道吗?更改事件不会捕获粘贴或拖动文本到框中,而input会捕获所有内容。说话前检查。@VytautasButkus你完全正确,谢谢你的澄清。但这样一种充满敌意的语调和说人们愚蠢的说法是不受欢迎的
document.getElementById('input').addEventListener('keydown', function() {
  // Perform search
});