仅当用户输入某个值时才触发“onchange”事件。当我通过Javascript自动更改值时,为什么不能激发事件?有其他选择吗?触发“onchange”事件
动画:
代码:
<!DOCTYPE html>
<html>
<head>
<script>
document.addEventListener ("DOMContentLoaded", function() {
var input = this.getElementsByTagName ("input")[0];
var div = this.getElementsByTagName ("div")[0];
var i = 0;
var seconds = 5;
div.innerHTML = "The following input should fire the event in " + seconds + " seconds";
var interval = window.setInterval (function() {
i ++;
if (i === seconds) {
window.clearInterval (interval);
input.value = "Another example";
div.innerHTML = "Nothing ! Now try change the value manually";
}
else {
div.innerHTML = "The following input should fire the event in " + (seconds - i) + " seconds";
}
}, 1000);
input.addEventListener ("change", function() {
alert ("It works !");
}, false);
}, false);
</script>
<style>
body {
padding: 10px;
}
div {
font-weight: bold;
margin-bottom: 10px;
}
input {
border: 1px solid black;
border-radius: 3px;
padding: 3px;
}
</style>
<title>Event</title>
</head>
<body>
<div></div>
<input type = "text" value = "Example" />
</body>
</html>
感谢
您必须在更改值后手动触发事件。看到这个问题:http://stackoverflow.com/q/2490825/615754 – nnnnnn 2012-01-09 13:56:58
当你改变输入值与JavaScript为什么不发射一些事件呢?你为什么要使用onchange? onchange是供用户输入的,其余的你可以自己处理。 – ggzone 2012-01-09 13:59:12