Как определить default значение select'а?

 
0
 
JavaScript
ava
anthrax | 27.10.2004, 12:00
Есть <select> с набором <option>'ов где один из них выбранный(selected). Как средствами JS определить дефолтовое значение селекта (наподобие свойства defaultValue для <input type='text'>)?
Comments (11)
ava
Forza | 27.10.2004, 12:39 #
Посмотри вот тут про selectedIndex.
ava
GoodBoy | 27.10.2004, 12:45 #
Forza
через select_object.options[select_object.selectedIndex].value можно выбрать ТЕКУЩЕЕ значение списка, а отнюдь не дефолтное...
ava
sergejzr | 27.10.2004, 12:46 #
Как правило это самый первый элемнт в списке.
А чтобы уж точно знать, проверяй selected сразу при загрузке.
ava
GoodBoy | 27.10.2004, 12:50 #
sergej.z
Не всегда!!!! если у меня такой код:
<select>
<option value=1> Адыгея
<option value=2> Алтай
...
<option value=76> Ярославская область
<option value=77 selected> Москва
<option value=78> Санкт-Петербург
</select>

то дефолтное значение далеко не первое...
ava
sergejzr | 27.10.2004, 12:54 #
Цитата (GoodBoy @ 27.10.2004, 11:50)


Не всегда!!!! если у меня такой код:


Да, я подправил ответ smile.

Проблема в том, что если значение было изменено, уже никак не добраться до того, каким оно было в начале :(
Т.е такого понятия, как дефолт, в листе не существует...
Остаётся только самому запоминать с самого начала...
ava
GoodBoy | 27.10.2004, 12:57 #
Цитата (sergej @ 27.10.2004, 13:54)
Т.е такого понятия, как дефолт, в листе не существует...

Тем более, что селект может быть с множественным выбором...
ava
anthrax | 27.10.2004, 13:27 #
Спасибо всем за затраченные усилия, но я уже сам разобрался.
Итак, Ты ды ды дыннн ты ды!!!

<form name='testfom'>
<select name='testselect'>
<option value=1> Адыгея
<option value=2> Алтай
<option value=76> Ярославская область
<option value=77 selected> Москва
<option value=78> Санкт-Петербург
</select>
</form>
<script>
for (var i = 0; i < document.testfom.testselect.length; i++) {
if (document.testfom.testselect.options[i].defaultSelected == true) {
defaultselectedIndex = document.testfom.testselect.selectedIndex;
break;
}
}
alert(defaultselectedIndex);
</script>



defaultselectedIndex и будет содержать индекс дефолтовой опции.
таким же образом можно пробежаться и посохранять в массиве дефолтовые опции для select'а с множественным выбором.
ava
sergejzr | 27.10.2004, 13:42 #
Question:
Как средствами яваскрипт определить дефолтовое значение селекта?
How could one determine a default value of "select"- object with javascript methods?
Wie findet man den vorselektierten Wert in einer HTML - liste mit Hilfe von Javascript.

Answer:
Для определения дефолтового значений селекта существует переменная: defaultSelected

Браузеры:
Internet Explorer Yes, Mozilla Yes, Opera Yes

Пример:
<!--
Thanks to:
anthrax http://vingrad.ru/@anthrax
for this excample
-->
<form name='testfom'>
<select name='testselect'>
<option value=1> Адыгея
<option value=2> Алтай
<option value=76> Ярославская область
<option value=77 selected> Москва
<option value=78> Санкт-Петербург
</select>
</form>
<script>
for (var i = 0; i < document.testfom.testselect.length; i++) {
if (document.testfom.testselect.options[i].defaultSelected == true) {
defaultselectedIndex = document.testfom.testselect.selectedIndex;
break;
}
}
alert(defaultselectedIndex);
</script>



Примечания:
defaultselectedIndex и будет содержать индекс дефолтовой опции.
таким же образом можно пробежаться и посохранять в массиве дефолтовые опции для select'а с множественным выбором.
Спасибо:
anthrax за предоставленный материал.
ava
anthrax | 27.10.2004, 14:35 #
Спасибо sergej.z за отформатированное соощение smile.

Смею лишь заметить, что не надо проверять свойство selected и не только при загрузке.
Написанный javascript код может быть помещен в какую-нибудь функцию и вызван не обязательно на этапе загрузки, а, скажем, по сабмиту формы, где я хочу проверить, например, было ли пользователем поменяно значение селекта или нет.
ava
sergejzr | 27.10.2004, 14:39 #
Ok smile Кстати ещё бы проверить на ИЕ/ОПЕРА/Мозилла smile
Хотя думаю на всех пойдёт smile
ava
Sardar | 27.10.2004, 20:59 #
В Опере, Мозилле и IE5.0 все тоже работает прекрасно smile
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
advanced
Submit