【发布时间】:2021-07-18 20:23:06
【问题描述】:
这是 HTML 代码:
<form action="#" method="POST" id = "myForm">
<div>
<div><p><label for = "myText"><b>Article Text </b></label>
<button type = "button" id="boldBtn">Bold</button></p></div>
<textarea name ="myText" id = "myText" rows="20" cols="55"></textarea>
</div>
<div>
<input type="submit" class="btn btn-outline-secondary btn-lg" value = "Submit">
</div>
</form>
这是 javascript 代码:
const myForm = document.getElementById('myForm');
const myText = document.getElementById('myText');
const boldBtn = document.getElementById('boldBtn');
myForm.addEventListener('submit', function(event) {
event.preventDefault();
const formData = new FormData(myForm);
//..............
//code to send data to PHP
});
boldBtn.addEventListener('click', function(event) {
event.preventDefault();
//insertAtCursor(myText,"BOLD text here");
});
我想添加一个在 textArea 内插入粗体标签的按钮,但是当我单击粗体按钮时,它会提交表单。我知道它可能会这样做,因为我在表单上有提交事件侦听器,但是每个事件侦听不同的触发器并且按钮类型也不同。
有没有办法让这个工作,同时保持表单元素上的事件监听器?
如果不是,这个问题的正确解决方案是什么?
【问题讨论】:
-
button type='button' 不应提交表单。你有错误吗?测试,
<form action="#" onsubmit='return false' ... -
代码有效,我只是忘了刷新页面。我只是使用我的一些按钮返回然后编辑,即使我离开页面然后返回,更改也没有加载。这似乎是最合理的解释,因为我没有更改代码中的某些内容并且它可以工作。
标签: javascript html button addeventlistener form-submit