Javascript.RU

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

Помогите назначить обработчик для всех чекбоксов?
Не работает ничего

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 и в неё передался индекс чекбокса.

Последний раз редактировалось Артист, 28.09.2016 в 12:53.
Ответить с цитированием
  #2 (permalink)  
Старый 28.09.2016, 13:01
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Сообщение от Артист
В функцию передается индекс объекта
возможно вы этого хотели, но этого в вашем коде нет??? и нафига?
Сообщение от Артист
// Найти список чекбоксов
возможно вы этого хотели, но этого в вашем коде нет???
Ответить с цитированием
  #3 (permalink)  
Старый 28.09.2016, 13:03
Профессор
Отправить личное сообщение для Артист Посмотреть профиль Найти все сообщения от Артист
 
Регистрация: 25.09.2016
Сообщений: 163

О, вот так начал работать обработчик:

var list = document.querySelectorAll('input[type="checkbox"]') // Найти список чекбоксов


Но идентификатор чекбокса не передаётся...
Ответить с цитированием
  #4 (permalink)  
Старый 28.09.2016, 13:05
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Артист,
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) // Назначить чекбоксу обработчик, передать в него его индекс
  }
})
Ответить с цитированием
  #5 (permalink)  
Старый 28.09.2016, 13:06
Профессор
Отправить личное сообщение для Артист Посмотреть профиль Найти все сообщения от Артист
 
Регистрация: 25.09.2016
Сообщений: 163

Сообщение от рони Посмотреть сообщение
возможно вы этого хотели, но этого в вашем коде нет??? и нафига?

возможно вы этого хотели, но этого в вашем коде нет???
Да я вообще не понимаю в java ничего.
Подправьте пожалуйста.

В функции save_checkbox я использую id="123sf" как ключ для сохранения.
Поэтому нужно как - то его получить в функцию должно же что - то передаться...
Ответить с цитированием
  #6 (permalink)  
Старый 28.09.2016, 13:07
Профессор
Отправить личное сообщение для Артист Посмотреть профиль Найти все сообщения от Артист
 
Регистрация: 25.09.2016
Сообщений: 163

Сообщение от рони Посмотреть сообщение
Артист,
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) // Назначить чекбоксу обработчик, передать в него его индекс
  }
})
Ааа, вон оно как ))
Спасибо большое ))
Ответить с цитированием
  #7 (permalink)  
Старый 28.09.2016, 13:09
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Артист,
localStorage.getItem
Ответить с цитированием
  #8 (permalink)  
Старый 28.09.2016, 13:13
Профессор
Отправить личное сообщение для Артист Посмотреть профиль Найти все сообщения от Артист
 
Регистрация: 25.09.2016
Сообщений: 163

Я просто загрузку убрал, так - то готово всё:
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()
})
Ответить с цитированием
  #9 (permalink)  
Старый 28.09.2016, 13:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Артист,
Поместить в local.storage выбранный option из select.
Ответить с цитированием
  #10 (permalink)  
Старый 28.09.2016, 13:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Артист,
если инпуты в таблице, достаточно установить клик только на таблицу.
https://learn.javascript.ru/event-delegation
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите в написать короткий скрипт для AdobeAcrobat XI. BSI Общие вопросы Javascript 1 13.08.2013 21:24
поиск классов внутри тега yozuul jQuery 24 14.06.2013 22:00
помогите обьединить скрипты для rsform polyakov_2004 Общие вопросы Javascript 1 10.04.2013 21:29
Помогите с Drag&Drop для новых eлементов ansi19 Общие вопросы Javascript 8 01.09.2011 12:44
Пошаговый вывод скрипта для IE всех версий. Zidky Элементы интерфейса 10 17.06.2009 18:27