Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   поле SELECT и его значение (https://javascript.ru/forum/dom-window/12814-pole-select-i-ego-znachenie.html)

vah-smile 04.11.2010 03:22

поле SELECT и его значение
 
Как узнать значение из SELECT не по значению VALUE, а то, что прописано в OPTION? Тоисть если мы выбрали VALUE=1 то как получить слово "Москва"?

<select class="select" id="ot">
    <option value="0" class="silver">- выберите город -</option>
    <option value="1">Москва</option>
    <option value="2">С. Петербург</option>
</select>

ksa 04.11.2010 08:25

Цитата:

Сообщение от vah-smile
Как узнать значение из SELECT не по значению VALUE, а то, что прописано в OPTION?

У селекта есть свойство selectedIndex, там хранится номер выбраного оптион... Зная это и получив массив всех оптион селекта бери innerHTML нужного оптион.

Вот примерчик из МСДН

var coll = document.all.tags("SELECT");
if (coll.length>0) {
    for (i=0; i< coll(0).options.length; i++)
        alert("Element " + i + " is " + coll(0).options(i).text +
		    " and has the value " + coll(0).options(i).value);
}

monolithed 04.11.2010 12:50

Цитата:

Сообщение от ksa
Вот примерчик из МСДН

Если проводить аналогию со средневековьем, то за такие примеры сжигали на костре!

<form action="" method="post">
    <select>
        <option selected="selected" disabled="disabled">- выберите -</option>
        <option>1</option>
        <option>2</option>
    </select>
</form>
<script type="text/javascript">
window.onload = function(){
    document.getElementsByTagName('select')[0].onchange = function(){
        alert('выбрано: ' + this.options[this.selectedIndex].value); //если в value будут значения то заменить на innerHTML 
    };
};
</script>

рони 04.11.2010 19:52

monolithed,
Повторяюсь уже ))) но где value здесь <option>1</option> ? тут только text!!!
Цитата:

Сообщение от vah-smile
Как узнать значение из SELECT не по значению VALUE, а то, что прописано в OPTION? Тоисть если мы выбрали VALUE=1 то как получить слово "Москва"?

<form action="" method="post" >
    <select class="select" id="ot" onchange="alert(this.options[this.selectedIndex].text);">
    <option value="0" class="silver">- выберите город -</option>
    <option value="1">Москва</option>
    <option value="2">С. Петербург</option>
    </select>
</form>

ksa 04.11.2010 22:42

Цитата:

Сообщение от monolithed
за такие примеры сжигали на костре

Не к тому претензии... :) Копирнул что было под рукой...

monolithed 04.11.2010 23:12

Цитата:

Сообщение от рони
Повторяюсь уже ))) но где value здесь <option>1</option> ?

В конкретном случае работает.
К тому же я сделал сноску, что если будет использоваться value, то заменить на innerHTML
Цитата:

Сообщение от рони
тут только text!!!

не забывайте тогда, что:
node.text || node.textContent

<form action="" method="post">
    <select>
        <option selected="selected" disabled="disabled"  value="0">- выберите -</option>
        <option value="1">Москва</option>
        <option value="2">С. Петербург</option>
    </select>
</form>
<script type="text/javascript">
window.onload = function(){
    document.getElementsByTagName('select')[0].onchange = function(){
        alert('выбрано: ' + this.options[this.selectedIndex].innerHTML);
    };
};
</script>

рони 05.11.2010 00:42

Цитата:

Сообщение от monolithed
В конкретном случае работает.

В Google Chrome и Internet Explorer проверьте ваш код с value
и у элемента Option есть свойство кросбраузерное техт поэтому нет необходимости в
Цитата:

Сообщение от monolithed
не забывайте тогда, что:
node.text || node.textContent



Часовой пояс GMT +3, время: 05:07.