开发者问题收集

我可以让 <button> 不提交表单吗?

2010-07-23
484067

我有一个表单,上面有两个按钮

<a href="index.html"><button>Cancel changes</button></a>

<button type="submit">Submit</button>

我也在它们上面使用了 jQuery UI 的按钮,就像这样

$('button').button();

但是,第一个按钮也会提交表单。我原以为,如果它没有 type="submit" ,它就不会提交表单。

显然我可以做到这一点

$('button[type!=submit]').click(function(event) { event.stopPropagation(); });

但是,有没有办法可以阻止后退按钮提交表单而无需 JavaScript 干预?

老实说,我使用按钮只是为了用 jQuery UI 来设置它的样式。我尝试在链接上调用 button() ,但它没有按预期工作(看起来相当丑陋!)。

3个回答

button 元素的 type 属性的默认值为“submit”。将其设置为 type="button" 可生成不提交表单的按钮。

<button type="button">Submit</button>

HTML 标准 的话来说:“不执行任何操作。”

Josh Lee
2010-07-23

button 元素 的默认类型为 submit

您可以通过设置 button 类型使其不执行任何操作:

<button type="button">Cancel changes</button>
s4y
2010-07-23

只需使用传统 HTML 即可:

<input type="button" value="Submit" />

如果您愿意,可以将其包装为链接的主题:

<a href="http://somewhere.com"><input type="button" value="Submit" /></a>

或者,如果您决定希望 JavaScript 提供其他功能:

<input type="button" value="Cancel" onclick="javascript: someFunctionThatCouldIncludeRedirect();"/>
Jeffrey Blake
2010-07-23