【发布时间】:2017-10-15 00:11:06
【问题描述】:
您好,我是 JS 新手,需要一些帮助。
所以我基本上试图在提交按钮单击事件上将一些文本从 textarea 发送到名为 inputFromText 的函数,但不知何故,该函数在单击之前被触发(通过电子打开 html 窗口时)并且什么都没有之后单击按钮时会发生这种情况。
如何防止这种情况发生?
<body>
<form>
<div class="form-group">
<textarea class="form-control" rows="5" id="txa_trainingText"></textarea>
<button type="submit" class="btn btn-default" id="btn_submit">Submit</button>
</div>
</form>
<script>
const trainingText = document.getElementById("txa_trainingText").value;
document.getElementById("btn_submit").addEventListener("click", inputFromText(trainingText));
function inputFromText(text) {
...
}
</script>
</body>
我发现当使用不带文本参数的函数时,可以通过以下方式解决问题:
function inputFromText(e) {
e.preventDefault();
...
}
【问题讨论】:
-
您需要将函数的引用作为第二个参数传递给
addEventListener。如所写,您正在调用该函数并改为传递返回值。有关更详细的答案,请参阅链接的问题。
标签: javascript html click electron addeventlistener