По клику на картинке включать/выключать чекбокс
Подскажите.
Как сделать, чтоб по клику на картинке включать/выключать чекбокс с нужным 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, время: 23:01. |