Здравствуйте. Уже 2 день пытаюсь сделать, чтобы цвет div изменялся в зависимости от заполненности форм. DIv у меня является кнопкой, которая меняет свой цвет на зелёный, если все поля заполнены и на красный, если есть пустое поле. Я делаю это так:
Вешаю такой обработчик события:
if (window.addEventListener) {
document.addEventListener('keypress', getKey, false);
window.addEventListener('load', emptyForm, false);
} else if (window.attachEvent) {
document.attachEvent('onkeypress', getKey);
}
Вот сама функция emptyForm
function emptyForm() {
var form = document.forms[0].elements;
for (var i = 1; i < form.length; i++) {
form[i].onchange = proof;
form[i].onkeypress = proof;
}
}
А вот обработчик proof
function proof() {
var elements = [];
var button = document.getElementById('button');
var form = document.forms[0].elements;
for (var i = 1; i<form.length; i++) {
elements[i] = form[i];
}
for (var t = 1; t < elements.length; t++) {
if ((elements[t].type == 'text' && elements[t].value == '') ||
(elements[t].type == 'textarea' && elements[t].value == '') ||
(elements[t].type == 'radio' && !elements[t].checked)) {
button.style.backgroundColor = 'red';
return;
}
}
button.style.backgroundColor = 'green';
}
В итоге я получаю, то, что кнопка свой цвет не меняент, но, если убрать вот эту строчку из proof, которая проверяет была ли выбранна какая то кнопка button
(elements[t].type == 'button' && !elements[t].checked)
То код вроде работает так, как я хотел, цвет кнопки меняется, но опять же, она не меняет свой цвет в IE. А вот с этой строчкой код нигде не работает. Помогите, пожалуйста.