单击按钮时禁用表单自动提交

Par*_*ris 169 html javascript forms button form-submit

我有一个HTML表单,我使用几个按钮.问题是无论我点击哪个按钮,即使按钮不是"提交"类型,表单也会被提交.例如:按钮<button>Click to do something</button>,导致表单提交.

e.preventDefault()为这些按钮中的每一个做一个是非常痛苦的.

我使用jQuery和jQuery UI,网站是HTML5.

有没有办法禁用这种自动行为?

Que*_*tin 415

按钮就像<button>Click to do something</button> 提交按钮.

设置type="button"改变它.type="submit"是默认值(由HTML建议指定).

  • 失去了一天的睡眠,徒劳地修复我的代码,因为我不知道这个简单的规范! (20认同)
  • 回应palerdot的想法,很高兴我在谷歌快速搜索后发现了这个音符而没有杀死几个小时.非常了解,非常感谢. (4认同)
  • @NiketJoshi —该声明似乎与此答案的问题无关。如果您有新问题,请[提问](/sf/),但请确保提供*清晰的问题说明*和[mcve]。 (2认同)

Bor*_*rov 17

做你想做的事并不难.您可以尝试使用return false(返回false覆盖每个DOM元素的默认行为),如下所示:

myform.onsubmit=function()
{ 
  //do what you want;
  return false;
}
Run Code Online (Sandbox Code Playgroud)

然后使用myform.submit()提交表单

或者:

mybutton.onclick=function () 
{
   //do what you want;
   return false;
}
Run Code Online (Sandbox Code Playgroud)

但是我认为输入类型="按钮"/按钮类型="按钮"不会提交您的表单,您可以毫无问题地使用它们.


mas*_*gns 8

<button>实际上是提交按钮,它们没有其他主要功能.您必须将类型设置为按钮.
但是如果你像下面那样绑定你的事件处理程序,你可以定位所有按钮,而不必为每个按钮手动执行!

$('form button').on("click",function(e){
    e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)