为何preventDefault()无法阻止表单提交?求正确解决方案
表单提交阻止失败的原因及解决方法
你只写preventDefault()会报错,核心问题是这个方法属于事件对象(event),必须通过回调函数接收的event参数来调用,单独写preventDefault()会被识别为全局函数,而全局环境中不存在这个函数,所以判定错误。
正确的阻止代码(不带分号)应该是:
event.preventDefault()
把这段代码放到注释位置即可,完整的事件处理器代码如下:
form.addEventListener("submit", function validateFields(event) { event.preventDefault() // 这里继续写你的表单字段验证逻辑 });
原理很简单:表单提交时,浏览器会生成一个事件对象并传入回调函数,只有调用这个对象的preventDefault()方法,才能取消表单提交的默认行为,让你有时间完成字段验证。
内容的提问来源于stack exchange,提问作者user28288362
相关产品推荐
相关产品推荐

