Автоматическое выделение checkbox
Есть скрипт, который делает автоматические выделение всех инпутов, когда отмечен первый.
<script type="text/javascript"> function checkAll(obj) { 'use strict'; // Получаем NodeList дочерних элементов input формы: var items = obj.form.getElementsByTagName("input"), len, i; // Здесь, увы цикл по элементам формы: for (i = 0, len = items.length; i < len; i += 1) { // Если текущий элемент является чекбоксом... if (items.item(i).type && items.item(i).type === "checkbox") { // Дальше логика простая: если checkbox "Выбрать всё" - отмечен if (obj.checked) { // Отмечаем все чекбоксы... items.item(i).checked = true; } else { // Иначе снимаем отметки со всех чекбоксов: items.item(i).checked = false; } } } } </script> <input type="checkbox" value="all" name='one' onClick="checkAll(this);" /> <input type="checkbox" name="time[1]" /> <input type="checkbox" name="time[2]" /> <input type="checkbox" name="time[3]" /> <input type="checkbox" name='name' /> Но мне нужно чтобы выделиляись только checkbox, с именами time[], а последний checkbox с именем name не выделялся. Заранее благодарен за помощь. |
Делайте сразу NodeList нужных элементов в 5 строке и отпадет нужда в проверке (строка 10) как бонус :)
Давно уже есть метод для этого document.querySelectorAll('selector'); <input type="checkbox" value="all" name='one' onchange="checkAll(this);" /> <input type="checkbox" name="time[1]" /> <input type="checkbox" name="time[2]" /> <input type="checkbox" name="time[3]" /> <input type="checkbox" name='name' /> <script> function checkAll(obj) { var nodes = document.querySelectorAll('input[name^=time'); [].forEach.call(nodes, function(el) { el.checked = obj.checked; }); } </script> |
Часовой пояс GMT +3, время: 16:03. |