"onchange"イベントは、USERが何らかの値を入力したときにのみトリガーされます。 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
javascriptで入力値を変更すると、何もイベントが発生しません。なぜあなたはonchangeを使いたいのですか? onchangeはユーザーの入力用で、残りの部分は自分で処理することができます。 – ggzone