繁体   English   中英

django复选框,全选

[英]django checkbox select all

单击标题复选框时,如何选择所有复选框? 用javascript? 怎么样? 我可以用更简单的方法做到这一点吗? 感谢:D

run.html

<form name="form" method="post" action="/home/{{build}}/">
<br>
<input type="submit" value="Delete" style="margin-left:149px; width:80px; height:30px">
<input type="hidden" name="build_id" value="{{build_id}}" />
<table border="1"; style="margin-left:150px; border-collapse:collapse;margin-top:10px"; cellpadding="4" borderColor=black>
<tr bgcolor=#888888>
<td><input type="checkbox" align="center"></td>
<td><b>Run</b></td>
<td><b>Product</b></td>
</tr>

{% for run in run_list %}
    <tr>
    <td><input type="checkbox" name="var_delete" value="{{run.id}}"></td>
    <td><a href="/home/{{build}}/{{run.name}}">{{build}} {{run.name}}</a></td>
    <td>{{run.build.version}}</td>
    </tr>
{% endfor %}
</table>
</form>

选中此复选框:如果您单击项目复选框,您还可以切换主复选框的选择:

$(function() {

  var masterCheckbox = $('#select_all');
  var slaveCheckboxes = $('.checkbox_delete');

  masterCheckbox.click(function() {
    slaveCheckboxes.attr('checked', masterCheckbox.attr('checked'));
  });

  slaveCheckboxes.click(function() {
      // Check all slave checkboxes selections: in case all are checked - check the master checkbox as well
      masterCheckbox.attr('checked', $.grep(slaveCheckboxes, function(e) {
          return $(e).attr('checked');
      }).length == slaveCheckboxes.length);
  });

});

除了Javascript,您别无选择。 页面加载后,django无法执行任何操作。 一种愚蠢的方法是将处理程序附加到主复选框,以重新加载页面并设置它们由django选中,但这是一个非常非常糟糕的主意。

如果您使用的是诸如mootools或jquery之类的库,则很容易实现。

第二个提示,看一下django表单 ,当处理表单附近的所有内容时,它们使您的生活更轻松。

您必须使用javascript。 这是一个使用jQuery的例子...

$(".checkbox_delete").attr('checked', true);

将其放在标题复选框的click事件中,然后将该类(checkbox_delete)添加到要选中的所有复选框中。

我使用jquery并编写了此代码,但是当我单击“ select_all”时这没用...

run.html

<script type="text/javascript" >
$(document).ready( function () {
  $('#select_all').click( function() {
    $(".checkbox_delete").attr('checked', true);
  });
}
</script>

<form name="form" method="post" action="/home/{{build}}/">
<br>
<input type="submit" value="Delete" style="margin-left:149px; width:80px; height:30px">
<input type="hidden" name="build_id" value="{{build_id}}" />
<table border="1"; style="margin-left:150px; border-collapse:collapse;margin-top:10px"; cellpadding="4" borderColor=black>
<tr bgcolor=#888888>
<td><input id="select_all" type="checkbox" align="center"></td>
<td><b>Run</b></td>
<td><b>Product</b></td>
</tr>

{% for run in run_list %}
    <tr>
    <td><input type="checkbox" name="var_delete" value="{{run.id}}" class="checkbox_delete"></td>
    <td><a href="/home/{{build}}/{{run.name}}">{{build}} {{run.name}}</a></td>
    <td>{{run.build.version}}</td>
    </tr>
{% endfor %}
</table>
</form>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM