slected в динамическом select
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
slected в динамическом select - 2007-07-19 02:40:36.810000
|
|
|
SaBo
Сообщений: 1089
Оценки: 0
Присоединился: 2005-02-17 20:16:54
|
Привет! Есть два select'a, при выборе значение в первом, меняются значения во втором. Как сделать предустановленное значение во втором select'e? Вот код:
<script type="text/javascript">
<!--
/*
written by alexander shurkayev <alshur@narod.ru> | [link=http://htmlcoder.visions.ru]http://htmlcoder.visions.ru[/link]
*/
// далее у нас следует массив из улиц, содержащих дома, разделённые запятой
var aHouseValues = new Array(
"12/15,18,123",
"2,4",
"2/8,10/12",
"3",
"2,4,12,5/6,8"
);
// ф-ция, возвращающая массив домов по заданной улице
function getHouseValuesByStreet(index){
var sHouseValues = aHouseValues[index];
return sHouseValues.split(","); // преобразуем строку в массив домов
}
// главная ф-ция, выводящая динамически список домов
function MkHouseValues(index){
var aCurrHouseValues = getHouseValuesByStreet(index);
var nCurrHouseValuesCnt = aCurrHouseValues.length;
var oHouseList = document.forms["address"].elements["house"];
var oHouseListOptionsCnt = oHouseList.options.length;
oHouseList.length = 0; // удаляем все элементы из списка домов
for (i = 0; i < nCurrHouseValuesCnt; i++){
// далее мы добавляем необходимые дома в список
if (document.createElement){
var newHouseListOption = document.createElement("OPTION");
newHouseListOption.text = aCurrHouseValues[i];
newHouseListOption.value = aCurrHouseValues[i];
// тут мы используем для добавления элемента либо метод IE, либо DOM, которые, alas, не совпадают по параметрам…
(oHouseList.options.add) ? oHouseList.options.add(newHouseListOption) : oHouseList.add(newHouseListOption, null);
}else{
// для NN3.x-4.x
oHouseList.options[i] = new Option(aCurrHouseValues[i], aCurrHouseValues[i], false, false);
}
}
}
// инициируем изменение элементов в списке домов, в зависимости от текущей улицы
MkHouseValues(document.forms["address"].elements["street"].selectedIndex);
//-->
</script> сама форма:
<form name="address" action="#">
Улица:
<select name="street" onChange="MkHouseValues(this.selectedIndex)">
<option value="ул. Хрюнделя">ул.&nbsp;Хрюнделя</option>
<option value="пер. Неизвестного">пер.&nbsp;Неизвестного</option>
<option value="ул. Оттопыркина">ул.&nbsp;Оттопыркина</option>
<option value="ул. Мир-Труд-Май">ул.&nbsp;Мир-Труд-Май</option>
<option value="бул. Нихренасебефамилия">бул.&nbsp;Нихренасебефамилия</option>
</select>
&nbsp;Дом:
<select name="house">
<option value="N/A">N/A</option>
</select>
</form> как сделать в первом select - понятно, надо просто к нужному option'у прописать selected, а вот как ко второму?
|
|
|
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); }
|
|
|
RE: slected в динамическом select - 2007-07-20 12:19:51.503333
|
|
|
SaBo
Сообщений: 1089
Оценки: 0
Присоединился: 2005-02-17 20:16:54
|
А чем это поможет в моём случае?(прошу прощения, в JS я чайник)
|
|
|
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 и другие с массива. Если в первом списке при загрузке отметишь другую улицу, то и во втором уже будут другие дома. Попробуй запустить.
|
|
|
|
|