是否可以通过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.
相关产品推荐
相关产品推荐

