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

是否可以通过JavaScript为submit类型input按钮设置onsubmit属性

你代码里存在3个核心错误:

  • submit 是 <form> 表单元素的专属事件,提交按钮本身没有 submit 事件,绑定到按钮上永远不会触发
  • 使用 addEventListener 绑定回调时,写 deleteCell() 会在代码运行时立刻执行函数,而非触发事件时执行,正确写法是传入不带括号的函数名 deleteCell
  • DOM 事件回调属性(如 onclick、onsubmit)需要赋值函数而非字符串,且按钮本身不存在 onsubmit 属性

场景1:点击按钮直接触发删除,不需要提交表单

let btn = document.createElement('input');
btn.value = "Delete";
btn.name = "deleteButton";
btn.type = "button";
// 绑定click事件,传入回调函数本身
btn.addEventListener('click', deleteCell)

如果用属性赋值写法:

btn.onclick = deleteCell
// 如果需要传参可以用匿名函数包裹
// btn.onclick = () => deleteCell(自定义参数)

场景2:点击提交按钮后,先执行删除逻辑再提交表单

需要把事件绑定到按钮所属的表单元素上:

// 替换为你实际的表单选择器
const form = document.querySelector('#yourFormId')
let btn = document.createElement('input');
btn.value = "Delete";
btn.name = "deleteButton";
btn.type = "submit";
// submit事件绑定到表单上
form.addEventListener('submit', deleteCell)

如果需要阻止默认表单提交行为,在deleteCell函数内加阻止逻辑即可:

function deleteCell(e) {
  // 阻止默认表单跳转/提交
  e.preventDefault()
  // 你的删除逻辑
}

内容的提问来源于stack exchange,提问作者Thorben C.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 09:54:05