Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.09.2015, 12:15
Интересующийся
Отправить личное сообщение для oopros Посмотреть профиль Найти все сообщения от oopros
 
Регистрация: 17.10.2014
Сообщений: 28

Автоматическое выделение 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 не выделялся.

Заранее благодарен за помощь.
Ответить с цитированием
  #2 (permalink)  
Старый 02.09.2015, 13:16
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Делайте сразу 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>

Последний раз редактировалось BETEPAH, 02.09.2015 в 13:50.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выделение строки <select> при выборе checkbox DarkMaster13 Общие вопросы Javascript 4 14.04.2014 03:30
checkbox = checkbox Слейп jQuery 2 30.01.2013 15:24
Выделение всех checkbox Tuzzulino jQuery 4 14.07.2011 17:23
Функция disable для нескольких checkbox allforweb Элементы интерфейса 4 19.12.2010 17:51
Выделение checkbox при условии атрибута... SashaBorandi jQuery 1 07.02.2009 14:18