为什么<button>也会触发表单提交

use*_*159 2 html forms jquery twitter-bootstrap

这是我的测试代码:

<form>
<input type="submit"/>
<button >tt</button>
</form>

<script>

$("form").submit(function(){
    console.log("submit");
    return false;
});

</script>
Run Code Online (Sandbox Code Playgroud)

<input>标签触发了我预期的提交,但我不知道为什么<button>也会触发提交.这是应该做的吗?

如果<button>应该进行提交,那么如果我想创建一个带有字形而不是纯文本的按钮,我应该使用什么?PS我正在使用boostrap + jQuery

Kar*_*non 6

HTML <button>接受一个type属性.而且,你可以在doc看到,默认值typesubmit,因此为什么你的表单提交.

你想要的是一个没有默认行为的按钮.只需添加type="button":

<button type="button">tt</button>
Run Code Online (Sandbox Code Playgroud)