Помогите назначить обработчик для всех чекбоксов?
Не работает ничего :(
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, время: 11:54. |