Сейчас: 20:50:10   25-го апреля 2024 г.
UsefulScript.ruСкриптыРазныеВыбрать все флажки (checkbox)
10
37

Выбрать все флажки (checkbox) одной кнопкой

Предположим, у Вас на сайте есть некая форма, которая содержит множество флажков (checkbox). Согласитесь, что выделять или снимать выделение с каждого флажка поочередно неудобно. Поэтому мы предлагаем Вам простой скрипт, написанный на JavaScript, который позволяет выделить или снять выделение со всех флажков формы одной кнопкой.


Ниже для примера создана форма, все флажки которой можно выбрать всего одной кнопкой "Выделить все". Чтобы очистить все флажки, воспользуйтесь кнопкой "Снять выделение".


Какими языками Вы владеете?
Русский
Украинский
Белорусский
Английский
Немецкий
Другой


Если Вам на сайт необходимо добавить точно такие же кнопки для добавления или снятия выделения сразу для всех флажков формы, то воспользуйтесь нашим JavaScript кодом, который необходимо будет поместить в тело Вашей странички:

JavaScript код:
<script type="text/javascript">
function 
check(fieldflag) {
 if (
flag==1) { for (i=0i<field.lengthi++) field[i].checked true; }
 else { for (
i=0i<field.lengthi++) field[i].checked false; }
}
</script>

Для того чтобы кнопки работали как положено, саму форму с флажками (checkbox-ами) следует оформлять следующим образом:

HTML код:
<form name="select_all" method="post" style="margin-left: 35px;">
<
b>Какими языками Вы владеете?</b><br>
<
input type="checkbox" name="list" value="1">Русский<br>
<
input type="checkbox" name="list" value="2">Украинский<br>
<
input type="checkbox" name="list" value="3">Белорусский<br>
<
input type="checkbox" name="list" value="4">Английский<br>
<
input type="checkbox" name="list" value="5">Немецкий<br>
<
input type="checkbox" name="list" value="6">Другой<br><br>
<
input type="button" value="Выделить все" onclick="check(this.form.list, 1)">
<
input type="button" value="Снять выделение" onclick="check(this.form.list, 0)">
</
form>

Как видите, скрипт совсем простой, но зато он может быть очень полезен тем, у кого на сайте используется большое количество форм и флажков (checkbox), которые постоянно нужно выбирать.

Дата создания: 23:00:47 01.10.2012 г.
Посещений: 17763 раз(а).

Комментарии посетителей (11 шт.):
Серж
1
# 2543
(21:57:06  22.06.2015 г.)

А если нужно по нажатию одной и той же кнопки устанавливать и сбрасывать чекбоксы?
Ответить

Administrator
-4
# 2544
(22:40:40  22.06.2015 г.)

Показать сообщение
Тогда добавьте кнопку: <input type="button" value="Инвертировать" onclick="invert(this.form.list)">
И JavaScript код:
function invert(field) {
for (i=0; i<field.length; i++) {
if (field[i].checked==true) field[i].checked=false;
else field[i].checked=true;
}
}
Ответить

Дмитрий
0
# 3770
(12:49:29  05.03.2017 г.)

Здравствуйте, спасибо большое за очень полезную информацию. Если Вас не затруднит, не могли бы Вы подсказать как встроить чекбоксы внутрь select?
Чтобы при наведении на строку, в которой по умолчанию будет запись "Выберите ..." выпадал список вниз - список с чекбоксами. И если это реализуемо чтобы в строке при выборе несколько значений, менюшка сворачивалась, а в строке остались выбранные значения. Заранее спасибо Вам большое, если найдете минутку!
Ответить

Administrator
0
# 3771
(14:27:01  05.03.2017 г.)

Предлагаю Вам попробовать поместить чекбоксы внутрь спойлера, а не в select. А вот уже заголовок и сам спойлер при помощи CSS уже можно будет оформить как угодно.
Ответить

владимир я
0
# 3853
(01:19:06  25.04.2017 г.)

Ок всё здорово, но как это реализовать без формы, у меня на сайте в разных местах стоят чеки, это придётся обращаться к чеку по его классу или ид и присваивать значение на труе?
Ответить

Administrator
1
# 3857
(20:51:18  25.04.2017 г.)

Попробуйте присвоить чекам класс class="list" вместо name="list" и использовать кнопки:
<input type="button" value="Выделить все" onclick="check(document.getElementsByClassName('list'), 1)">
<input type="button" value="Снять выделение" onclick="check(document.getElementsByClassName('list'), 0)">
Ответить

влад
-1
# 3865
(21:30:06  29.04.2017 г.)

Добавляем кнопкам функцию.
function check() {
$("input:checkbox").prop("checked", true);
}
function uncheck() {
$("input:checkbox").prop("checked", false);
}
Ответить

Administrator
1
# 3866
(23:11:45  29.04.2017 г.)

Думаю стоит упомянуть, что данный код будет работать только при подключенной библиотеки jQuery.
Ответить

Олег
1
# 4356
(22:00:00  08.10.2018 г.)

Вы уверенны, что такая штука будет работать?
<input type="checkbox" name="list" value="1">Русский<br>
<input type="checkbox" name="list" value="2">Украинский<br>
<input type="checkbox" name="list" value="3">Белорусский<br>
<input type="checkbox" name="list" value="4">Английский<br>
<input type="checkbox" name="list" value="5">Немецкий<br>

Ведь в $_POST['list'] я поймаю только последнее выбранное значение. name то у всех одинаковый. Выбирать несколько смысла никакого нет.
Ответить

Administrator
2
# 4357
(11:07:53  09.10.2018 г.)

Вы правы, в конкретном примере при передаче данных через $_POST будет получено только последнее значение. Если необходимо получать через $_POST все отправленные данные, то используйте код из темы нашего форума.
Ответить

Albert
0
# 4984
(18:26:07  18.05.2023 г.)

Вот простая реализация заполнения и удаления на одну и ту же кнопку:

let countClick = 0;
btn.addEventListener("click", (e) => {
countClick += 1;
if (countClick % 2 != 0) {
check(list, 1);
} else {
check(list,0);
}
});
Ответить

Закрыть
Ваше имя:
714 + 18 =
Добавить комментарий:
Ваше имя:
714 + 18 =

Перед публикацией все комментарии проходят обязательную модерацию!

Если Вы хотите задать какой-либо вопрос, то сделайте это на нашем форуме.
Таким образом, Вы сможете быстрее получить ответ на интересующий Вас вопрос.
Посетителей онлайн: 7

Мешает ли Вам реклама?