Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: проверка динамического поля
 
 автор: vadimka   (17.08.2009 в 11:12)   письмо автору
 
 

Здравствуйте! Пытаюсь сделать проверку поля. Поля скрытые: (product1, product2, product3 и т.п.) если прописать так:

if (theForm.product1.value < 1)
  {
    alert("Введите город !");
    theForm.product1.focus();
    return (false);
  }

- то работает. Но как добится "динамичности", я пытаюсь так:

for (i = 0; i < 100; i++)
    {
   if (theForm.product[i].value < 1)
  {
    alert("Введите город !");
    theForm.product[i].focus();
    return (false);
  }
    }

это не работает

  Ответить  
 
 автор: Lelik   (18.08.2009 в 00:55)   письмо автору
 
   для: vadimka   (17.08.2009 в 11:12)
 



for (i = 0; i < 100; i++)
    {
   if (theForm.product[i].value < 1)
  {
    alert("Введите город !");
    theForm['product'+i].focus();
    return (false);
  }
    } 


как-то так чтоль

  Ответить  
 
 автор: vadimka   (18.08.2009 в 11:11)   письмо автору
 
   для: Lelik   (18.08.2009 в 00:55)
 

что-то не получается, я забыл сказать, что делаю еще проверку:

if ( theForm.product1.style.display == "block")
    {
theForm.product1.style.display = "block";
   if (theForm.product1.value < 1)
  {
    alert("Введите город !");
    theForm.product1.focus();
    return (false);
  }
    }

  Ответить  
 
 автор: Lelik   (18.08.2009 в 11:39)   письмо автору
 
   для: vadimka   (18.08.2009 в 11:11)
 

а как ваши поля скрытые?

и ещё, вот этот участок кода

if ( theForm.product1.style.display == "block")
    {
theForm.product1.style.display = "block"; 

делает следдующее: он проверяет если у элемента свойство стиля display == block, то мы назначаем ему своство стиля display = block, что бессмыслено (такой код называют ещё индийским ;) ).

  Ответить  
 
 автор: vadimka   (18.08.2009 в 12:34)   письмо автору
 
   для: Lelik   (18.08.2009 в 11:39)
 

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

  Ответить  
 
 автор: Lelik   (18.08.2009 в 14:19)   письмо автору
 
   для: vadimka   (18.08.2009 в 12:34)
 

код покажи, пожалуйста :)

  Ответить  
 
 автор: vadimka   (18.08.2009 в 18:13)   письмо автору
 
   для: Lelik   (18.08.2009 в 14:19)
 

естественно, все это выглядит иначе, так как генерируется php скриптом, тут приводится вид в браузере

<select name=id_catalog id="catalog" onchange='show(this.form.id_catalog)'>
<option value=0>Выберите направление</option>
<option value=1 >Здравницы и курорты</option>
<option value=6 >Отдых  в России</option>
<option value=3 >Отдых в Карпатах</option>
</select>
<br /><br />
  

первый селект, который виден изначально, и другие, которые появляются после выбора в первом:
 
<select  id=1  style="display:none" name=product1 >
<option value=0>Выберите курорт</option>
<option value=1 >Трускавец</option>
<option value=4 >Моршин</option>
<option value=5 >Шаяны</option>
</select>
<select  id=3  style="display:none" name=product3 >
<option value=0>Выберите курорт</option>
<option value=2 >Славское</option>
</select>
<select  id=6  style="display:none" name=product6 >
<option value=0>Выберите курорт</option>
<option value=3 >Черное море России</option>
</select>

<script language='JavaScript1.1' type='text/javascript'>
<!--
  var messageIdList = new Array(1,6,3);
  function show(sel)
  {
    for (i = 0; i < messageIdList.length; i++)
    {
      document.getElementById(messageIdList[i]).style.display = "none";
    }
    document.getElementById(sel.options[sel.selectedIndex].value).style.display = "block";
  }
//-->
</script>

  Ответить  
 
 автор: Lelik   (18.08.2009 в 18:31)   письмо автору
 
   для: vadimka   (18.08.2009 в 18:13)
 

ну тут кой-чего надо исправить :)

<select name=id_catalog id="catalog" onchange='show(this)'>
<option value=0>Выберите направление</option>
<option value=1 >Здравницы и курорты</option>
<option value=6 >Отдых  в России</option>
<option value=3 >Отдых в Карпатах</option>
</select>
<br /><br />


id должен начинаться или с буквы или со знака подчеркивания

<select id=product_1  style="display:none" name=product_1 >
<option value=0>Выберите курорт</option>
<option value=1 >Трускавец</option>
<option value=4 >Моршин</option>
<option value=5 >Шаяны</option>
</select>
<select  id=product_3  style="display:none" name=product_3 >
<option value=0>Выберите курорт</option>
<option value=2 >Славское</option>
</select>
<select  id=product_6  style="display:none" name=product_6 >
<option value=0>Выберите курорт</option>
<option value=3 >Черное море России</option>
</select>

<script type='text/javascript'>
<!--
var messageIdList = new Array(1,6,3);
  function show(sel)
  {
    var sValue = sel.options[sel.selectedIndex].value;
    var sId = 'product_'+sValue;
    for (i = 0; i < messageIdList.length; i++) {
        document.getElementById(messageIdList[i]).style.display = "none";
    }
    document.getElementById(sId).style.display = "block";
  }
//-->
</script> 

  Ответить  
 
 автор: vadimka   (21.08.2009 в 17:54)   письмо автору
 
   для: Lelik   (18.08.2009 в 18:31)
 

сорри за задержку со ответом, но в таком случае механизма совсем не работает

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования