我有一个看起来像这样的表格:
<form method="post">
{% csrf_token %}
<table>
{% for field in form %}
{% partial "partials/field.html" field=field %}
{% endfor %}
<tr>
<td></td>
<td>
<input name="save" type="submit" value="{% if is_new_entry %}Save{% else %}Update{% endif %}" class="submit" />
{% if not is_new_entry %}
<input name="delete" type="submit" value="Delete" class="submit" />
{% endif %}
<a style="text-decoration:none" href="{% url dealership-entry %}"><button class="submit">New</button></a>
</td>
</tr>
</table>
</form>
我希望“新建”按钮只是将GET请求提交回该href。这在FF中运行良好(尽管它在我必须隐藏的按钮后面放置了一个愚蠢的下划线),但在IE中它实际上提交了表单!
什么是最简单的方法来做我想要的?我正在考虑关闭表单,然后使用一个“新”按钮放置一个新表单,并将“href”放在操作中,但我认为不再是有效的XHTML,因为{ {1}}需要追踪</form>
。
我不想使用JavaScript。
答案 0 :(得分:2)
按钮不仅仅是一个“风格”对象,而且还是一个功能对象。
您看起来需要的是锚标记(A),其样式似乎是一个按钮。你可以单独使用CSS,并且非常令人信服地使用CSS + Images来处理按钮状态。
锚标记内的按钮标记非常不标准(在技术上可能无效),这就是为什么你没有获得一致的行为。
答案 1 :(得分:1)
这甚至有效吗?在链接中放一个按钮?按钮应该根据表单的内容发布或获取。
你有
<form method="post">
所以它会发布。
也许使用类似jquery的东西来创建发布的链接?
应该是:
<form action="postform.php" method="post">
我相信你不会设置按钮样式,因为这是一个OS样式的东西。
答案 2 :(得分:0)
你的方法发布了,那会与它有什么关系吗?我可能正在读你错了
当带有提交类的按钮
时,所有浏览器似乎都会提交表单答案 3 :(得分:0)
始终指定按钮的type属性。 Internet Explorer的默认类型是“按钮”,而在其他浏览器中(以及在W3C规范中),它是“提交”。
答案 4 :(得分:0)
我目前的解决方案是将“新建”按钮变为实际的<input type=submit>
按钮并使用后端的重定向处理它,而不是与HTML和有效性斗争。