Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   вопрос по циклу (https://javascript.ru/forum/css-html/11055-vopros-po-ciklu.html)

tikhon_shw 04.08.2010 16:02

вопрос по циклу
 
ребята сильно прошу не пинать, только начинаю учить JavaScript

на форме есть 8 инпутов
которые проверяются по нужным условиям, если условие не выполняется то инпут красим цветом
после выполнения всех условий необходимо проверить все инпуты на присутствие style.background

вот набросал цикл
var numberSelected=0;
  for (i=0; i <= 8; i++)
  { if (formObj.str[i].style.background  == "#feafc4")
    { numberSelected++; }
  }
  alert (numberSelected);


, но ничего не происходит

по данному коду выяснил что не правильно идет перебор formObj.str[i].style.background

Вопрос!!! Как правильно перебрать в цикле необходимые мне элементы?!

рони 04.08.2010 16:20

надеюсь formObj.str это коллекция инпутов и их всего 9 ))) тогда проверять на style.background == "#feafc4" немного бессмысленно, разные браузеры по разному выдадут установленный цвет.

JsLoveR 04.08.2010 16:25

tikhon_shw, к примеру:
function checkInputs()
{
	var form=document.forms['main_form'];
	for(var i=0;i<form.elements.length;i++)
	{
		if(form.elements[i].value=="")
		{
			form.elements[i].style.backgroundColor="#feafc4"
		}
	}
}

<form name="main_form">
<input type="text"  />
<input type="text"  />
<input type="text"  />
<input type="text"  />
<input type="button" value="проверить" onclick="checkInputs()"/>
</form>

И как сказал рони, глупо проверять цвет фона, он же появляется, когда условие не выполняется, то есть Вам нужно проверять условия ,а затем окрашивать их.

tikhon_shw 05.08.2010 07:59

Все спасибо!! получилось.. результат:

var form=document.forms['myform'];
  var numberSelected = 0;
  var emptyInput = 0;
  for(var i=0;i<form.elements.length;i++)
  { if(form.elements[i].style.background == "#feafc4")
    { numberSelected++; }
  }
  if (numberSelected == 0) formObj.myButon.disabled = false; else formObj.myButon.disabled = true;

рони 05.08.2010 09:00

...а воз и ныне там ...
tikhon_shw,
Посмотри какое значение background/backgroundColor будет в Google Chrome, Mozilla Firefox, Safari
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title></title>
</head>
<body>
<form name="myform" action="http://">
<input name="n" size="50" />
<input name="s" size="50" />
</form>
<script language="JavaScript" type="text/javascript">
var form=document.forms['myform'];
form.n.style.background="#feafc4";
form.n.value=form.n.style.background;
form.s.style.backgroundColor="#feafc4";
form.s.value=form.n.style.backgroundColor;
</script>
</body>
</html>

если уж очень хочеться сделать проверку на установленный цвет
if(form.elements[i].style.backgroundColor == "#feafc4"||form.elements[i].style.backgroundColor == "rgb(254, 175, 196)")

tikhon_shw 05.08.2010 12:27

меня пока на данном этапе изучение JS устраивает то что получилось...
это первое что я пробую делать... (этап HelloWord решил пропустить)

Вопрос: для чего я делаю проверку!!
Ответ: есть форма, где люди должны вносить циферки.. так как люди могут внести как всегда, а не то что надо.. есть проверка логики заполнения формы... ту ячейку (или группу ячеек) которая (ые) не прошла (и) проверку подсвечиваем... затем есть необходимость выполнить условие отключение кнопки отправки формы.. вот и все....

решил просто посмотреть получится или нет проверять сразу на стороне клиента или нет.. чтобы облегчить себе же работу проверки на стороне сервера (php).. пока весь процесс меня устроил...

Результат: получил что планировал. Заказана книга по JS основы.
надеюсь что и дальше буду пробовать что-то делать новое облегчающее себе жизнь....

tikhon_shw 05.08.2010 12:46

Цитата:

Сообщение от рони
Посмотри какое значение background/backgroundColor будет в Google Chrome, Mozilla Firefox, Safari

Спасибо учту!!! надеюсь на данном этапе вопроса по работе условий не будет (вроде как все используют IE)

JsLoveR 05.08.2010 13:24

Цитата:

Сообщение от tikhon_shw
вроде как все используют IE

:blink:

tikhon_shw 05.08.2010 13:55

поправлюсь.. то что я пытаюсь сотворить (точнее уже запущено в работу) крутиться только в организации.. и тут внутри сети ничего кроме IE использовать не могут по ряду причин.. одна из которых софт который используется в конторе написан (по инструкции эксплуатации) только для IE

inGray 05.08.2010 15:29

Цитата:

только для IE
Жестоко-то как....


Часовой пояс GMT +3, время: 05:52.