僅當用戶輸入某個值時才觸發「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