Управление состоянием множества checkbox 'ов с помощью одного checkbox 'са.
Никак не могу реализовать такую хрень: допустим у нас есть три флажка (checkbox) , назавём их "a", "b" и "c". Мне нужно чтобы при активировании флажка "а" автоматически активировались флажки "b" и "с", и что самое главное (что не получается реализовать), чтобы при деактивировании флажка "а" автоматически деактивировались флажки "b" и "с". Примером может быть страници mail,ru, где изображён список писем (например "входящие") . Там можно поставить галочку на любом письме независемо друг от друга, но когда ставишь галочку в заголовка, то и на всех письмах автоматом ставятся галочки, ну и естественно при снятии флажка с заголовка флажки автоматом снимается и со всех писем. Зарание всем спасибо !!!
------------------------------------------------------------ <script> function act() { document.form.b.checked="checked"; document.form.c.checked="checked"; } </script> <form name="form"> <input type="checkbox" onclick="act();" id="a"><br> <input type="checkbox" id="b"> <input type="checkbox" id="c"> </form> ------------------------------------------------------------ Вэтом примере при активации флажка с id="a" автоматом активируются флажки с id="b" и id="c". А как сделать чтобы при деактивации флажка с id="a" автоматом деактивируются флажки с id="b" и id="c" ?? |
Цитата:
|
пример добавлен
|
<script>
function act(v)
{
document.form.b.checked=v;
document.form.c.checked=v;
}
</script>
<form name="form">
<input type="checkbox" onclick="act(this.checked);" id="a"><br>
<input type="checkbox" id="b">
<input type="checkbox" id="c">
</form>
|
soad,
вместо "checked" нужно писать true или false |
soad, как вариант...
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>12345</title>
<style type="text/css">
</style>
<script>
function act() {
var o=document.getElementById('frm')
o=o.getElementsByTagName('input')
var val=document.getElementById('a').checked
var i
for (i=1; i<o.length; i++) {
o[i].checked=val
}
}
</script>
</head>
<body>
<form id="frm">
<input type="checkbox" onclick="act();" id="a" />
<br />
<input type="checkbox" id="b" />
<input type="checkbox" id="c" />
</form>
</body>
</html>
|
<script>
function act(v){
document.forms['form'].b.checked = v;
document.forms['form'].c.checked = v;
}
</script>
<form name="form">
<input type="checkbox" onclick="act(this.checked);" id="a"><br>
<input type="checkbox" id="b">
<input type="checkbox" id="c">
</form>
|
vladlen, аесли чекбоксов будет больше? Опять программку будешь менять?
|
Проще всего реализовать это на jQuery.
Для этого всем чекбоксам, которые должны будут выделяться, нужно прописать класс class='checks_all' Пример:
...
<input type='checkbox' name='c0' class='checks_all' />
<input type='checkbox' name='c1' class='checks_all' />
<input type='checkbox' name='c2' class='checks_all' />
<input type='checkbox' name='c3' class='checks_all' />
<input type='checkbox' name='c4' class='checks_all' />
<input type='checkbox' id='check_all' /> Выделить все
<script type=\"text/javascript\">
$(document).ready(function() {
$('#check_all').click(function () {
if (!$('#check_all').is(':checked'))
$('.checks_all').removeAttr('checked');
else
$('.checks_all').attr('checked','checked');
});
});
</script>
...
При нажатии на чекбокс «Выделить все» будут отмечаться все чекбоксы с классом class='checks_all', при повторном нажатии все флажки снимутся. :victory: |
| Часовой пояс GMT +3, время: 06:34. |