【问题标题】:Select all checkboxes in django template选中 django 模板中的所有复选框
【发布时间】:2016-12-04 23:44:10
【问题描述】:

我正在使用以下代码在 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);
  }

问题是如果我按下“检查所有”按钮,表格会自动发布。在“清除”按钮的情况下也是如此。

所以我尝试将 preventDefault() 添加到我的表单提交事件中。

  $("#inv_form").submit(function(event){
     event.preventDefault();
  });

现在原来的问题已经解决了,但是点击后提交根本不起作用。

如何在不自动发布 django 表单的情况下使检查所有按钮工作

【问题讨论】:

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


【解决方案1】:

我在这里找到了一个更简单的解决方案。 ** stack overflow: disable auto-submit on button click ** 它解释了在 html5 中默认的按钮是 type="submit"。上述问题的解决方法如下所述。

<button type="button" onclick="select_all()">Select All</button>

【讨论】:

    【解决方案2】:

    您可能讨厌取消绑定提交,然后您可以提交表单。

    $('some_form').unbind('submit').submit()
    

    这种方法应该取消prevenDefault,这样你就可以提交表单了。

    【讨论】:

    • 你能告诉我具体放在哪里吗?
    猜你喜欢
    • 2014-01-25
    • 2010-09-24
    • 1970-01-01
    • 1970-01-01
    • 2015-12-11
    • 2018-04-25
    • 2016-04-08
    • 1970-01-01
    • 2010-10-27
    相关资源
    最近更新 更多