我的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());

09-16 11:20