Помогите назначить обработчик для всех чекбоксов?
Не работает ничего :(
function save_checkbox(check) // В функцию передается индекс объекта { var name = check.id // Получить id(имя) объекта localStorage[name] = check.checked ? 1 : 0 // Записать в память ключ = состояние alert('12 ' + name) // Поверка. Вообще не вызывается (( } document.addEventListener("DOMContentLoaded", function() // После загрузки всех объектов на странице { var list = document.querySelectorAll("checkbox") // Найти список чекбоксов for(var i = 0; i < list.length; i++) // Цикл по списку { list[i].addEventListener('click', save_checkbox) // Назначить чекбоксу обработчик, передать в него его индекс } }) На странице чекбоксов около 20. <td align="center"><input type="checkbox" id="123sf"></td> <td align="center"><input type="checkbox" id="32dfs"></td> <td align="center"><input type="checkbox" id="4df"></td> <td align="center"><input type="checkbox" id="df34"></td> Нужно чтобы при клике какого - то из них вызвалась функция save_checkbox и в неё передался индекс чекбокса. |
Цитата:
Цитата:
|
О, вот так начал работать обработчик:
var list = document.querySelectorAll('input[type="checkbox"]') // Найти список чекбоксов Но идентификатор чекбокса не передаётся... |
Артист,
function save_checkbox() { var name = this.id // Получить id(имя) объекта localStorage[name] = this.checked ? 1 : 0 // Записать в память ключ = состояние alert('12 ' + name) // Поверка. Вообще не вызывается (( } document.addEventListener("DOMContentLoaded", function() // После загрузки всех объектов на странице { var list = document.querySelectorAll('[type="checkbox"]') // Найти список чекбоксов for(var i = 0; i < list.length; i++) // Цикл по списку { list[i].addEventListener('click', save_checkbox) // Назначить чекбоксу обработчик, передать в него его индекс } }) |
Цитата:
Подправьте пожалуйста. В функции save_checkbox я использую id="123sf" как ключ для сохранения. Поэтому нужно как - то его получить в функцию должно же что - то передаться... |
Цитата:
Спасибо большое )) |
|
Я просто загрузку убрал, так - то готово всё:
function save_checkbox() { localStorage[this.id] = this.checked ? 1 : 0 } function load_checkbox() { var table = document.getElementById('resources') var input = table.getElementsByTagName('input') for(var i = 0; i < input.length; i++) { var check = input[i] check.checked = localStorage[check.id] == '1' ? true : false } } document.addEventListener("DOMContentLoaded", function() { var list = document.querySelectorAll('[type="checkbox"]') for(var i = 0; i < list.length; i++) { list[i].addEventListener('click', save_checkbox) } load_checkbox() }) |
|
Артист,
если инпуты в таблице, достаточно установить клик только на таблицу. https://learn.javascript.ru/event-delegation |
Часовой пояс GMT +3, время: 08:21. |