2 回答
TA贡献1777条经验 获得超3个赞
因为它是一个 type="submit" 按钮,所以 event.preventDefault() 阻止了 "submit" 事件触发(而 "submit" 事件是将数据发送到后端的原因)。
与其在按钮上监听“点击”事件,我认为最好在表单上监听“提交”事件。当您单击 type="submit" 的按钮时,它将在表单上触发。
表单现在将成为事件的目标。
let form = document.getElementById('my-form')
form.addEventListener('submit', function(event) {})
因此,在您的函数开始时,您应该能够通过调用来阻止提交操作
event.preventDefault();
但是,您也可以将表单存储到局部变量中,因为这是触发提交事件的元素:
let form = event.target
然后,如果没有错误,您可以在函数结束时触发表单上的提交:
form.submit()
全部一起:
let form = document.getElementById('my-form')
form.addEventListener('submit', function(event) {
event.preventDefault()
let form = event.target
let errors = false;
//do all of the error checking here, if there's an error, set errors to true
if(!errors) {
form.submit()
}
})
(可能有更好的方法,但这是我能想到的。此外,通过向每个输入添加“名称”属性而不是查询每个输入,获取所有数据值可能更容易场地)。
添加回答
举报