导航
电话
咨询
地图
顶部
javascript 表单提交事件中,若未阻止默认行为,页面会自动刷新导致 `console.log` 无法在控制台显示;同时需确保事件监听器绑定到 `
在前端开发中,尤其是初学者使用原生 JavaScript 处理表单时,常遇到「点击按钮后控制台无日志输出」的问题。这并非代码语法错误,而是由两个关键机制共同导致的:HTML 表单的默认提交行为 和 DOM 元素选择器的误用。
id="Formulario" 绑定在 上,而非 元素 原 HTML 中: 而 JavaScript 中却尝试获取该 ID 并监听 submit 事件:const cadForm = document.getElementById('Formulario'); if (cadForm) { cadForm.addEventListener("submit", ...); // ❌ div 不会触发 submit 事件 }✅ 正确做法是将 id="Formulario" 移至 标签上: 未调用 event.preventDefault() 默认提交会触发行内 action="#" 的跳转(即页面重载)。一旦页面刷新,所有尚未执行完的 JS(包括 console.log)都会被中断,控制台自然看不到输出。 ✅ 必须在事件处理函数中显式阻止默认行为:cadForm.addEventListener("submit", (e) => { e.preventDefault(); // ✅ 关键:阻止页面刷新 console.log("Success"); // ✅ 现在能正常输出 }); ✅ 完整修复示例 Submit // 修复后的 JavaScript(含防刷新 + 可选 Swal 提示) const cadForm = document.getElementById('Formulario'); if (cadForm) { cadForm.addEventListener("submit", (e) => { e.preventDefault(); // ? 必须!阻止页面重载 console.log("✅ Form submitted successfully!"); // ✅ 控制台可见 // 示例:调用 SweetAlert2 弹窗(需确保库已正确加载) // Swal.fire({ // icon: 'success', // title: 'Cadastro realizado!', // text: 'Seus dados foram enviados com sucesso.' // }); }); }⚠️ 注意事项与最佳实践 避免命名冲突:示例中定义了名为 alert() 的函数,但 alert 是浏览器全局函数名,覆盖它可能导致意外行为。建议改用语义化名称,如 showRegistrationError()。 脚本加载时机:确保 JS 代码在 DOM 加载完成后执行。推荐将
而 JavaScript 中却尝试获取该 ID 并监听 submit 事件:
const cadForm = document.getElementById('Formulario'); if (cadForm) { cadForm.addEventListener("submit", ...); // ❌ div 不会触发 submit 事件 }
✅ 正确做法是将 id="Formulario" 移至
未调用 event.preventDefault()
cadForm.addEventListener("submit", (e) => { e.preventDefault(); // ✅ 关键:阻止页面刷新 console.log("Success"); // ✅ 现在能正常输出 });
// 修复后的 JavaScript(含防刷新 + 可选 Swal 提示) const cadForm = document.getElementById('Formulario'); if (cadForm) { cadForm.addEventListener("submit", (e) => { e.preventDefault(); // ? 必须!阻止页面重载 console.log("✅ Form submitted successfully!"); // ✅ 控制台可见 // 示例:调用 SweetAlert2 弹窗(需确保库已正确加载) // Swal.fire({ // icon: 'success', // title: 'Cadastro realizado!', // text: 'Seus dados foram enviados com sucesso.' // }); }); }
# html # js # 前端 # 前端开发 # cad # javascript # java # 浏览器 # 邮箱 # 表单提交 # ajax
相关栏目: 【 行业资讯 】 【 网络运营 】 【 GEO优化 】 【 营销推广 】 【 SEO优化 】 【 技术教程 】 【 代码知识 】 【 AI推广 】
相关推荐: Win11怎么关闭自动修复_跳过Win11开机自动修复循环【技巧】 php485返回空数组怎么回事_php485数据接收为空排查指南【详解】 Win11怎么关闭自动更新 Win11永久关闭系统更新的有效方法【技巧】 Mac版Final Cut Pro入门_Mac视频剪辑基础操作【教程】 Win11怎么设置默认终端应用_Windows11开发者选项终端 C++中的Pimpl idiom是什么,有什么好处?(隐藏实现) Win11怎么查看显卡显存_查询Win11显卡详细参数方法【步骤】 Ajax提交表单PHP怎么接收_处理Ajax发送的表单数据技巧【指南】 php怎么下载安装后无法解析php文件_服务器配置检查【解答】 Win11怎么关闭粘滞键_彻底禁用Windows 11连按Shift粘滞键【步骤】 Win11色盲模式怎么开_Win11屏幕颜色滤镜设置【关怀】 Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】 VSC怎样在VSC中调试PHPAPI_接口调试技巧【详解】 Win11怎么开启剪贴板历史记录_Windows11 Win+V键使用技巧 Win11怎么设置ipv4地址_Windows 11固定静态IP地址配置教程【详解】 Windows 11登录时提示“用户配置文件服务登录失败”怎么办_Windows 11修复损坏的用户配置文件 Win10如何备份驱动程序_Win10驱动备份步骤【攻略】 如何使用 Python 合并文件夹内多个 Excel 文件并避免权限错误 Go 语言标准库为何不提供泛型切片的 Contains 方法? Win11怎么开启窗口最小化到托盘_Win11部分应用隐藏任务栏图标减少干扰【方法】 Mac如何解压zip和rar文件?(推荐免费工具) Windows10电脑怎么设置虚拟内存_Win10高级系统设置性能 Windows10如何更改任务栏高度_Win10解除锁定调整大小 为什么Go需要go mod文件_Go go mod文件作用说明 如何使用Golang encoding/json解析JSON_Golang encoding/json解析与序列化示例 Go语言中slice追加操作的底层共享机制解析 Flask 表单数据通过 SMTP 发送邮件的完整实现教程 Win11怎么更改电脑密码_Windows 11修改本地账户密码【步骤】 Win11怎么设置组合键快捷方式_Windows11自定义快捷键操作 Win10怎样清理C盘浏览器缓存_Win10清理浏览器缓存步骤【步骤】 Windows10怎么用“讲述人”读屏辅助 Windows10轻松使用开启讲述人朗读屏幕文字帮助视障用户【教程】 Mac自带的词典App怎么用_Mac添加和使用多语言词典【技巧】 c++如何判断文件是否存在_c++ filesystem库用法 c++中如何求一个数的平方根_c++ sqrt函数与牛顿迭代法 如何使用Golang实现容器健康检查_监控和自动重启 Windows10如何更改系统字体大小_Win10辅助功能文本缩放设置 Windows 11怎么更改锁屏超时时间_Windows 11电源选项中设置屏幕关闭时间 Win11任务栏怎么调到左边_Win11开始菜单居左设置教程【步骤】 如何在 Windows 11 中使用 AlomWare 工具箱 c++中的Tag Dispatching是什么_c++利用标签分发优化函数重载【元编程】 Mac如何修改Hosts文件?(本地开发与屏蔽网站) Mac如何彻底清理浏览器缓存?(Safari与Chrome) PythonDocker高级项目部署教程_多容器管理与CI/CD流水线 Win11怎么关闭触摸键盘图标_Windows11任务栏系统托盘设置 c++ std::atomic如何保证原子性 c++ CAS操作原理【底层】 Win11如何设置系统声音_Win11系统声音调整教程【攻略】 Win10怎样设置多显示器_Win10多显示器扩展设置【攻略】 Win11怎么查看电脑配置_Win11硬件配置详细查询方法【详解】 VSC怎么在PHP中调试MySQL_数据库交互排查技巧【教程】 c++的位运算怎么用 与、或、异或、移位操作详解【底层知识】
赣ICP备2024031479号