选中django模板中的所有复选框

时间:2016-07-30 10:06:11

标签: javascript python django django-forms django-templates

我使用以下代码来选择所有'和'清除' 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按钮工作

2 个答案:

答案 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>