По клику на картинке включать/выключать чекбокс
Подскажите.
Как сделать, чтоб по клику на картинке включать/выключать чекбокс с нужным id? ..Или хотябы по клику на <table> или div |
var img = document.getElementById('id_cartinki'), chbox = document.getElementById('id_chekboksa'); img.addEventListener('click', function(){ if (chbox.getAttribute('checked') == 'checked') { chbox.removeAttribute('checked'); } else { chbox.setAttribute('checked', 'checked'); } }, false); |
<form> <input type="checkbox" id="chb1"> <br> Some text <br> Some more text <br> <label for="chb1"> <img src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif"> </label> </form> В IE не работает :-( |
Не работает, потому что IE не поддерживает метод addEventListener.
var img = document.getElementById('id_cartinki'), chbox = document.getElementById('id_chekboksa'), addEvent; if (document.addEventListener) { addEvent = function(elem, type, handler) { elem.addEventListener(type, handler, false) } } else { addEvent = function(elem, type, handler) { elem.attachEvent("on" + type, handler) } } addEvent(img, 'click', function(){ if (chbox.getAttribute('checked') == 'checked') { chbox.removeAttribute('checked'); } else { chbox.setAttribute('checked', 'checked'); } }); |
zilker,
Когда я говорил, что в IE не работает, имел ввиду свой вариант. Не работает картинка внутри тэга label, текст работает. |
Да, как-то я промахнулся)
По поводу картинки с лейблом да, это баг ишака. |
<!DOCTYPE HTML> <html> <head> <style> label { display:inline-block; position:relative; } label div { position:absolute; z-index:10; border:1px solid blue; width:100%; height:100%; background:url(http://javascript.ru/forum/images/ca_serenity/misc/logo.gif); } </style> </head> <body> <label for="chb1"><div></div> <img src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif"> </label> <input type="checkbox" id="chb1"> </body> </html> |
zilker,
Это: if (chbox.getAttribute('checked') == 'checked') { chbox.removeAttribute('checked'); } else { chbox.setAttribute('checked', 'checked'); } урезается до: chbox.checked = !chbox.checked; |
Часовой пояс GMT +3, время: 21:49. |