-
Вебмастеру
(
http://forum.oszone.net/forumdisplay.php?f=22)
dmitryst |
17-09-2008 17:05 901788 |
Изменение цвета фона ячейки таблицы при нажатии чекбокса
Привожу кусок кода:
Код:
<td>
<form id="form1" name="form1" method="post" action="">
<input type="checkbox" id="test-check" />
</form>
</td>
Нужно, чтобы при нажатии чекбокса менялся цвет фона ячейки - нажат чекбокс=фон зеленый, не нажат чекбокс=фон красный. Честно говоря, совсем запутался со стилями и javascript-ами.. Кое-как удалось это реализовать, но работает только в эксплорере. Я так подозреваю, надо использовать что-то вида document.table.cell_ID.background-color="color", подскажите, как это сделать правильно (или хоть как-нибудь, чтобы было кроссбраузерным решением)
|
Arrest |
17-09-2008 18:45 901870 |
document.getElementById("test-check").parentNode.parentNode.style.backgroundColor="новый цвет"
|
Coutty |
17-09-2008 19:17 901887 |
Чуть дополню:
HTML код:
<table><tr>
<td id="chbxStatus" style="background-color:red">
<form id="form1" name="form1" method="post" action="">
<input type="checkbox" id="test-check" onclick="document.getElementById('chbxStatus').style.backgroundColor = this.checked ? 'green' : 'red'"/>dsf
</form>
</td>
</tr></table>
|
dmitryst |
17-09-2008 23:39 902049 |
Coutty, фигассе конструкция.. Понятно, почему у меня ничего не получилось :(. Спасибо обоим!
|
Coutty |
18-09-2008 03:59 902151 |
dmitryst, это упрощённый вариант от:
HTML код:
if (this.checked) // или if (document.getElementById('test-check').checked)
document.getElementById('chbxStatus').style.backgroundColor = 'green';
else
document.getElementById('chbxStatus').style.backgroundColor = 'red';
Сама конструкция означает:
Код:
условие ? "вернуть, если условие верно" : "вернуть, если условие не верно"
А раз возвращает значение, значит можно его присвоить чему-нибудь)
Но, в общем, это Arrest придумал как реализовать кросс-браузерно ;) У меня почему-то получалось только для Оперы - присваивал к .style = "background-color:green", а оно - только для чтения в других браузерах.
|
Время: 06:55.
© OSzone.net 2001-