I'm trying to trigger an event handler when a script modifies an input
element (text field.) On Internet Explorer, I can use the onpropertychange
event, but on Firefox and other browsers there is no such event. So, according to the W3C docs, it seems the DOMAttrModified
event does exactly what I want. But it doesn't fire in Firefox 11
.
Here's a simple code snippet which reproduces the problem. I have an input text field, and a button which adds a character to the value
attribute of the input text field. Clicking on the add char
button should cause the DOMAttrModified
event to fire:
<!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>
But it doesn't. Any idea what I'm doing wrong? (I know that DOM Level 3 deprecates this event, but there doesn't seem to be a viable alternative right now. As far as I know, Firefox 11 still supports it.)