Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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.
Ответить с цитированием
  #2 (permalink)  
Старый 29.07.2011, 12:16
Аспирант
Отправить личное сообщение для lalala Посмотреть профиль Найти все сообщения от lalala
 
Регистрация: 04.03.2011
Сообщений: 87

возможно потому что атрибута checked нет для button?
Ответить с цитированием
  #3 (permalink)  
Старый 29.07.2011, 18:01
Аспирант
Отправить личное сообщение для prowoke Посмотреть профиль Найти все сообщения от prowoke
 
Регистрация: 09.12.2010
Сообщений: 56

Ай я яй, ну вообщем там 'radio' должен быть. Но с ним таже история. Да и итерации у меня идут с 1 потому, что у меня форма обёрнута в <fieldset>, чтобы он его пропускал.
Ответить с цитированием
  #4 (permalink)  
Старый 29.07.2011, 18:44
Аспирант
Отправить личное сообщение для lalala Посмотреть профиль Найти все сообщения от lalala
 
Регистрация: 04.03.2011
Сообщений: 87

if (window.addEventListener) {
	document.addEventListener('keypress', getKey, false);
	window.addEventListener('load', emptyForm, false);
} else if (window.attachEvent) {
	window.attachEvent('onload', emptyForm, false);
	document.attachEvent('onkeypress', getKey);
}

и сюда, надеюсь я нигде не ошибся
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическре изменение цвета ячейки по нажатию на ссылку Bagira Элементы интерфейса 7 08.04.2011 16:54
Изменение цвета ячейки в таблице, при наведении на строку другой таблицы Psychosonic Общие вопросы Javascript 12 24.11.2010 16:44
jQuery Изменение цвета дочерних элементов libinstyle Общие вопросы Javascript 2 24.03.2010 04:46
изменение цвета фона alina Общие вопросы Javascript 1 27.12.2009 17:23
Изменение цвета ячейки (динамическая таблица) не по событию ImSWORDMASTER Элементы интерфейса 3 12.03.2009 21:21