Динамический Select @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 7 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
CutCopyPaste Муж.
соучастник
0
Сообщения: 516
Зарегистрирован: 21.06.03
Откуда: Москва
Заголовок сообщения: Динамический Select
Сообщение Добавлено: 16 Июль 2004, 12:00:20 
Помогите плиз с селектами основанными на array.
Для Mozilla Firefox не могу сделать.

Т.е. в форме есть два селекта, второй сначала пустой, после выбора в первом селекте, во втором появляется соотв-й список.

Для IE это выглядит так, прмер с Районами и Улицами:

Код:
streetArr = new Array();
dependArr = new Array();

streetArr[6] = 'Кокосово';
dependArr[6] = '6';
streetArr[7] = 'Петушки';
dependArr[7] = '2';
streetArr[10] = 'Кукуево';
dependArr[10] = '2';
// и т.п.

function projectsout()
{
   var i=0;
   var num = form1.elements['streets'].length;
   
   for(j=0; j<num;j++) {
     form1.elements['streets'].options[0] = null;
     }
   
   form1.elements['streets'].options[i++] = new Option( "—",0, false, false);

   for(j=0;j<dependArr.length;j++)
     {
        
      if (dependArr[j] == form1.elements['regions'].value )
      {
         form1.elements['streets'].options[i] = new Option( streetArr[j],j, false, false);
         i++;
      }
     }
}


форма

Код:
<form id=form1 method=post>

<select onChange="projectsout()" id="regions" name=form[region_id] >
<option value="2">Район 1</option>
<option value="3">Район 2</option>
</select>

<select id="streets" name=form[street_id]></select>

</form>


Почему Mozilla не хочет это обрабатывать. (для мозилы конкретно еще ничего не писал на javascript)

Может у кого был опыт. Заранее спасибо!!!

_________________
Пьяный русский хакер практически непобедим!
CutCopyPaste Муж.
соучастник
0
Сообщения: 516
Зарегистрирован: 21.06.03
Откуда: Москва
Сообщение Добавлено: 16 Июль 2004, 12:03:21 
А еще, отладчик в Mozille пишет :
Ошибка: form1 is not defined

_________________
Пьяный русский хакер практически непобедим!
des
соучастник
0
Сообщения: 407
Зарегистрирован: 14.04.03
Откуда: 40км от Москвы
Сообщение Добавлено: 16 Июль 2004, 12:52:20 
хм, скорее Мозила жеще относится к переменным

вобщем попробуй определи form1
в IE это var form1=document.getElementById("form1")
а в мозиле не помню точно, поищи в инете
но скорее из-за этого ошибка

_________________
всё таково, каково оно есть, и больше никаково
CutCopyPaste Муж.
соучастник
0
Сообщения: 516
Зарегистрирован: 21.06.03
Откуда: Москва
Сообщение Добавлено: 16 Июль 2004, 13:31:51 
пишу

document.getElementById['streets']

все ОК. но только обращаюсь

var num = document.getElementById['streets'].length;

говорит:

Ошибка: document.getElementById.streets has no properties

_________________
Пьяный русский хакер практически непобедим!
CutCopyPaste Муж.
соучастник
0
Сообщения: 516
Зарегистрирован: 21.06.03
Откуда: Москва
Сообщение Добавлено: 16 Июль 2004, 13:33:50 
доки (кому интересно) нашел здесь
http://www.mozilla.org/docs/dom/domref/ … tml#998288

_________________
Пьяный русский хакер практически непобедим!
arlekino Муж.
соучастник
5
Сообщения: 481
Зарегистрирован: 05.07.01
Откуда: Москва
Сообщение Добавлено: 16 Июль 2004, 13:44:59 

Цитата:
var num = document.getElementById['streets'].length;


Правильно будет:
Код:
var num = document.getElementById['streets'].options.length;


Без использования DOM2 ссылка на обьект такая:
Код:
document.forms['form1'].elements['street'].options.length

Но лучше пользуйся новой DOM2.

PS. Есть же в Мозилле встроенный DOM Inspector!
CutCopyPaste Муж.
соучастник
0
Сообщения: 516
Зарегистрирован: 21.06.03
Откуда: Москва
Сообщение Добавлено: 16 Июль 2004, 14:18:38 
arlekino, СПАСИБО ОГРОМНОЕ!!!

вот так заработало:
Код:
function projectsout()
{
   var i=0;
      var num = document.forms['form1'].elements['streets'].options.length;

   for(j=0; j<num;j++)
   {
      document.forms['form1'].elements['streets'].options[0] = null;
   }
      
   document.forms['form1'].elements['streets'].options[i++] = new Option( "—",0, false, false);

   for(j=0;j<dependArr.length;j++)
     {
        
      if (dependArr[j] == document.forms['form1'].elements['regions'].value )
      {
         document.forms['form1'].elements['streets'].options[i] = new Option( streetArr[j],j, false, false);
         i++;
      }

     }

}

_________________
Пьяный русский хакер практически непобедим!
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 7 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100