我的HTML中有一个div,我想将innerHTML添加到其中,但是仅当用户在文本输入中输入内容时才可以。它会在页面加载后立即添加innerHTML,所以我想我不像我想象的那样理解onchange事件监听。
HTML:
<body>
<label for="changeMe">What is your favorite number?</label>
<input type="text" id="changeMe" />
<div id="addStuff"></div>
<script src="scripts/main.js"></script>
</body>
JS:
function doStuff() {
var thing = document.getElementById("changeMe");
thing.addEventListener('onchange', doMoreStuff());
}
function doMoreStuff() {
var addStuff = document.getElementById("addStuff");
var stuff = "<input 'type=text' />";
addStuff.innerHTML = stuff;
}
window.onload = function() {
doStuff();
};
最佳答案
当前,您正在将doMoreStuff()
的结果与事件处理程序绑定在一起。
用
thing.addEventListener('change', doMoreStuff); //Notice remove () here
代替
thing.addEventListener('onchange', doMoreStuff());