Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

slected в динамическом select

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> slected в динамическом select
Имя
Сообщение << Старые топики   Новые топики >>
slected в динамическом select - 2007-07-19 02:40:36.810000   
SaBo

Сообщений: 1089
Оценки: 0
Присоединился: 2005-02-17 20:16:54
Привет!
Есть два select'a, при выборе значение в первом, меняются значения во втором.
Как сделать предустановленное значение во втором select'e?
 
Вот код:
&lt;script type="text/javascript"&gt; &lt;!-- /* written by alexander shurkayev &lt;alshur@narod.ru&gt; | [link=http://htmlcoder.visions.ru]http://htmlcoder.visions.ru[/link] */ // далее у&nbsp;нас следует массив из&nbsp;улиц, содержащих дома, разделённые запятой var aHouseValues = new Array( "12/15,18,123", "2,4", "2/8,10/12", "3", "2,4,12,5/6,8" ); // ф-ция, возвращающая массив домов по&nbsp;заданной улице function getHouseValuesByStreet(index){ &nbsp;&nbsp;&nbsp;var sHouseValues = aHouseValues[index]; &nbsp;&nbsp;&nbsp;return sHouseValues.split(","); // преобразуем строку в&nbsp;массив домов } // главная ф-ция, выводящая динамически список домов function MkHouseValues(index){ &nbsp;&nbsp;&nbsp;var aCurrHouseValues = getHouseValuesByStreet(index); &nbsp;&nbsp;&nbsp;var nCurrHouseValuesCnt = aCurrHouseValues.length; &nbsp;&nbsp;&nbsp;var oHouseList = document.forms["address"].elements["house"]; &nbsp;&nbsp;&nbsp;var oHouseListOptionsCnt = oHouseList.options.length; &nbsp;&nbsp;&nbsp;oHouseList.length = 0; // удаляем все элементы из списка домов &nbsp;&nbsp;&nbsp;for (i = 0; i &lt; nCurrHouseValuesCnt; i++){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// далее мы добавляем необходимые дома в&nbsp;список &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (document.createElement){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var newHouseListOption = document.createElement("OPTION"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newHouseListOption.text = aCurrHouseValues[i]; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newHouseListOption.value = aCurrHouseValues[i]; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// тут мы используем для&nbsp;добавления элемента либо метод IE, либо DOM, которые, alas, не&nbsp;совпадают по&nbsp;параметрам… &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(oHouseList.options.add) ? oHouseList.options.add(newHouseListOption) : oHouseList.add(newHouseListOption, null); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// для NN3.x-4.x &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oHouseList.options[i] = new Option(aCurrHouseValues[i], aCurrHouseValues[i], false, false); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;} } // инициируем изменение элементов в&nbsp;списке домов, в&nbsp;зависимости от&nbsp;текущей улицы MkHouseValues(document.forms["address"].elements["street"].selectedIndex); //--&gt; &lt;/script&gt;
сама форма:

&lt;form name="address" action="#"&gt; Улица: &lt;select name="street" onChange="MkHouseValues(this.selectedIndex)"&gt; &lt;option value="ул. Хрюнделя"&gt;ул.&amp;nbsp;Хрюнделя&lt;/option&gt; &lt;option value="пер. Неизвестного"&gt;пер.&amp;nbsp;Неизвестного&lt;/option&gt; &lt;option value="ул. Оттопыркина"&gt;ул.&amp;nbsp;Оттопыркина&lt;/option&gt; &lt;option value="ул. Мир-Труд-Май"&gt;ул.&amp;nbsp;Мир-Труд-Май&lt;/option&gt; &lt;option value="бул. Нихренасебефамилия"&gt;бул.&amp;nbsp;Нихренасебефамилия&lt;/option&gt; &lt;/select&gt; &amp;nbsp;Дом: &lt;select name="house"&gt; &lt;option value="N/A"&gt;N/A&lt;/option&gt; &lt;/select&gt; &lt;/form&gt;
как сделать в первом select - понятно, надо просто к нужному option'у прописать selected, а вот как ко второму?

Post #: 1
RE: slected в динамическом select - 2007-07-20 01:46:27.120000   
dOver

Сообщений: 140
Оценки: 0
Присоединился: 2007-03-31 04:41:56.070000
Нало заставить вызвать твою функцию MkHouseValues (…) при загрузке страницы. Например в body.onload или в конце скрипта вот так:
window.onload = function() {
MkHouseValues(document.forms["address"].elements["street"].selectedIndex);
}
Post #: 2
RE: slected в динамическом select - 2007-07-20 12:19:51.503333   
SaBo

Сообщений: 1089
Оценки: 0
Присоединился: 2005-02-17 20:16:54
А чем это поможет в моём случае?(прошу прощения, в JS я чайник)
Post #: 3
RE: slected в динамическом select - 2007-07-20 19:48:07.810000   
dOver

Сообщений: 140
Оценки: 0
Присоединился: 2007-03-31 04:41:56.070000
Тем, что у тебя второй select уже не пустой будет c N/A, а со списком домов с улицы Хрунделя, то есть 12/15 и другие с массива. Если в первом списке при загрузке отметишь другую улицу, то и во втором уже будут другие дома. Попробуй запустить.
Post #: 4
Страниц:  [1]
Все форумы >> [Веб-программинг] >> slected в динамическом select







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.