我正在为基于django的应用创建一个html模板。我在这里使用twitter bootstrap API作为按钮,但其中一个(取消按钮)似乎没有正常工作。我使用href将其链接到另一个页面,但是当我单击该按钮时,它会重定向到当前页面的post方法。见下文:
<h2>Add new Schedule:</h2>
<form class="form-horizontal" method='post'>
<table>
{% load bootstrap %}
{{ form|bootstrap }}
{% csrf_token %}
<tr>
<td></td>
<td>
<input class="btn btn-primary" type='submit' name='reset' value='Save' />
</td>
<td></td>
<td><a href='{%url head.views.edit_instance_binding binding.id %}'><button class="btn btn-inverse" type="submit">Cancel</button></a></td>
</tr>
</table>
</form>
然而,如果我摆脱按钮并将其用作简单的href,它似乎工作:
<td><a href='{%url head.views.edit_instance_binding binding.id %}'>Cancel</a></td>
这里发生了什么?
答案 0 :(得分:13)
<button>
元素中有<a>
- 摆脱按钮,否则您将提交表单。
如果您希望将锚设置为按钮,请为其指定btn
。
Bootstrap只是一大堆CSS设施,里面装有少量的js - 根本没有API :))
编辑:现在HTML语义和外观很分离[虽然有人可能会说Bootstrap有这方面的黑客,看看<i>
用于图标]。
密切关注您的情况,您想使用<button>
来设置一个简单的锚点,就像压纹按钮一样。但是<button>
标记只是提供更丰富的<input type="submit">
的一种方式,您可以在其中插入图像[查看按钮旁边的图标的所有BS示例]。
好<input type="submit">
和<button>
在<form>
内触发后者action
,即他们会将用户输入的一些数据发布到此类位置。
如果您只是需要在不提交任何内容的情况下访问某个网址,则需要一个锚标记[<a>
],可以根据需要设置样式,例如:与BS btn
,btn-primary
,btn-whateva
类。