我使用以下代码来选择所有'和'清除' django模板中我的django表单的复选框。
<form id="inv_form" method="post" action="{% url 'inventory:create_inventory' %}">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" name="submit" value="Create Inventory" />
<a href="{% url 'user:dashboard' %}">Cancel</a>
<button onclick="select_all()">Select All</button>
<button onclick="deselect_all()">Clear</button>
</form>
function select_all() {
$('input[type=checkbox]').prop('checked', true);
}
function deselect_all() {
$('input[type=checkbox]').prop('checked', false);
}
问题是,如果我按“全部检查”,表单会自动发布。按钮。在&#39; clear&#39;的情况下也是如此。按钮。
所以我尝试将preventDefault()添加到表单提交事件中。
$("#inv_form").submit(function(event){
event.preventDefault();
});
现在原来的问题已经解决,但即使点击也没有提交。
如何在不自动发布django表单的情况下使check all按钮工作
答案 0 :(得分:0)
您可能不喜欢取消绑定提交,然后您可以提交表单。
$('some_form').unbind('submit').submit()
此方法应取消prevenDefault
,以便您提交表单。
答案 1 :(得分:0)
我在这里找到了一个更简单的解决方案。 ** stack overflow: disable auto-submit on button click ** 它解释说,通过html5默认按钮是type =“submit”。以下解释了上述问题的解决方案。
<button type="button" onclick="select_all()">Select All</button>