gpt4 book ai didi

javascript - DOMAttrModified 不会触发

转载 作者:行者123 更新时间:2023-12-01 14:12:59 25 4
gpt4 key购买 nike

我试图在脚本修改 input 元素(文本字段)时触发事件处理程序。在 Internet Explorer 上,我可以使用 onpropertychange 事件,但是在 Firefox 和其他浏览器上没有这样的事件。所以,根据W3C docs ,似乎 DOMAttrModified 事件完全符合我的要求。但它不会在 Firefox 11 中触发。

这是重现问题的简单代码片段。我有一个输入文本字段和一个向输入文本字段的 value 属性添加字符的按钮。单击 add char 按钮应该会触发 DOMAttrModified 事件:

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function addChar() {
var q = document.getElementById("query");
q.value += "X";
}

function loadevents() {
var q = document.getElementById("query");
q.addEventListener("DOMAttrModified", function() {alert("DOMAttrModified event!");
}, false);
}
</script>
</head>
<body onLoad="loadevents()">
<input type="text" id="query">
<br>
<input type="submit" value="add char" onclick="addChar()">
</body>
</html>

但事实并非如此。知道我做错了什么吗? (我知道 DOM Level 3 弃用这个事件,但目前似乎没有可行的替代方案。据我所知,Firefox 11 仍然支持它。)

最佳答案

更改输入中的值不会触发 DOMAttrModified 事件,仅此而已。

您需要更改输入节点的属性,而不是变量的属性
就像 difference between the two jQuery functions: .prop and .attr

阅读:

关于javascript - DOMAttrModified 不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10418721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com