Показать сообщение отдельно
  #1 (permalink)  
Старый 29.07.2011, 02:02
Аспирант
Отправить личное сообщение для prowoke Посмотреть профиль Найти все сообщения от prowoke
 
Регистрация: 09.12.2010
Сообщений: 56

Динамические изменение цвета кнопки
Здравствуйте. Уже 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. А вот с этой строчкой код нигде не работает. Помогите, пожалуйста.

Последний раз редактировалось prowoke, 29.07.2011 в 18:02.
Ответить с цитированием