You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

表单含name/id为confirm的输入框时onsubmit事件失效问题

问题原因及解决办法

这问题的核心是DOM对象的属性命名冲突:
浏览器会自动把表单里的控件(通过name或id)挂载到对应的<form> DOM实例上,属性名就是控件的name/id值。当你有个name和id都是confirm的复选框时,form.confirm就指向了这个复选框元素,直接覆盖了全局的window.confirm()函数——你在onsubmit里写的confirm('Are you sure ?'),其实是在调用这个复选框元素,而不是原生的确认弹窗函数,自然没法触发预期的确认逻辑。

给你两个解决思路:

  • 最简单的:改复选框的name和id,别用confirm这种和全局API重名的词,比如改成confirm-terms:
    <input type="checkbox" name="confirm-terms" id="confirm-terms">
    
  • 如果非要保留这个命名,就在onsubmit里明确指定调用全局的window.confirm,绕开表单的属性覆盖:
    <form onsubmit="return window.confirm('Are you sure ?')">
      <!-- 你的表单内容 -->
    </form>
    

内容的提问来源于stack exchange,提问作者mkt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 03:24:52