2010-08-23 5 views
1

Как я могу выбрать все флажок, когда я нажимаю заголовок? По javascript? Как? И могу ли я сделать это проще? спасибо: Ddjango checkbox выбрать все

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> 
+0

Ах :) ты такой же, как http://stackoverflow.com/questions/3521725/django-how-to-modify-database-records -by-template :) Форма формы формы! –

ответ

0

Для этого вам необходимо использовать javascript. Это пример использования JQuery ...

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

положить, что в случае щелчка в окошке заголовка и добавить этот класс (checkbox_delete) для всех флажков, которые вы хотите проверяемых.

+0

привет ~ Я публикую новую версию в своем ответе, но она все еще не работает, что не так? спасибо ~ – LoveTW

+0

если я хочу использовать jquery, должен ли я импортировать или загружать некоторые файлы? – LoveTW

0

У тебя нет выхода, кроме Javascript. Когда страница загружена, вы ничего не можете сделать с помощью django. A stupid метод может быть прикреплен к обработчику мастеру, чтобы перезагрузить страницу и установить их, проверенный django, но это очень плохая идея.

Если вы используете какую-либо библиотеку, например mootools или jquery, ее легко достичь.

В качестве второго намека, взгляните на django forms, они облегчают вашу жизнь при работе со всеми близкими формами.

0

Я использую 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> 
1

Проверьте это: вы будете иметь возможность переключения мастер флажок выбор, а также в случае, если вы нажмете на пункт флажке:

$(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); 
    }); 

});