Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как вывести значение выбранного селекта в блок? (https://javascript.ru/forum/events/41308-kak-vyvesti-znachenie-vybrannogo-selekta-v-blok.html)

рони 10.09.2013 21:04

:-?
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
<select id="id3" name="option[230]" class="select-menu">
<option value="21" points="0" price_prefix="+" price="0.0000">1</option>
<option value="22" points="0" price_prefix="+" price="1000.0000">2(+1000.00 р.)</option>
<option value="23" points="0" price_prefix="+" price="2000.0000" selected="selected"   >3(+2000.00 р.)</option>
<option value="24" points="0" price_prefix="+" price="3000.0000">4(+3000.00 р.)</option>
</select>
<script>
var select = document.getElementById('id3');
var indx = select.selectedIndex || 0;
alert(select.options[indx].text);
</script>
</body>

</html>

And5 10.09.2013 22:37

выводит!!:no: при загрузке страницы только, первое значение. Надо обработчик какой-нибудь что-ли

And5 10.09.2013 23:03

Супер!, только не алертом надо, а в отдельный блок. Сорри, только сейчас понял, что не совсем корректно вопрос задал. Имеется: селект, который при загрузке страницы имеет опшн 0. Надо: выводить значение опции (не вэлью, а текст в тэгах option) в отдельный блок при выборе опции мышкой. Видимо функция для обработчика нужна, чтоб менялось содержимое при выборе.

And5 10.09.2013 23:51

<select id="id3" name="option[230]" class="select-menu" onchange="kategory();">
<option value="21" points="0" price_prefix="+" price="0.0000">1                                                               </option>
<option value="22" points="0" price_prefix="+" price="1000.0000">2                                                               
(+1000.00 р.)     
</option>
<option value="23" points="0" price_prefix="+" price="2000.0000">3                                                               
(+2000.00 р.)     
</option>
<option value="24" points="0" price_prefix="+" price="3000.0000">4                                                               
(+3000.00 р.)    
</option>
</select>


<script type="text/javascript">
function kategory()
{
var selectedOption = document.getElementById('id3').selectedOptions[0];
document.getElementById('selectedOption').innerHTML = selectedOption.innerHTML;
}
</script>

Да заработало!! Только при начальной загрузке страницы не отображает, как решить? onload написать?

рони 11.09.2013 01:05

Цитата:

Сообщение от danik.js
var selectedOption = document.getElementById('id3').selectedOptions[0];

где прочитать что это за свойство и какими браузерами поддерживается selectedOptions ?

danik.js 11.09.2013 07:13

Хм, действительно, оказывается это HTML5 свойство и оно имеет хреновую поддержку среди браузеров (старых по крайней мере): http://stackoverflow.com/questions/1...ions-broken-or
Так что лучше избегать его использования пока что.

And5 11.09.2013 10:27

дааа, в ie не работает: SCRIPT5007: Не удалось получить свойство "0" ссылки, значение которой не определено или является NULL
Спотыкается на этой строчке:
window.opener.kategory()

в мозилле тоже, но ie только kategory() не работает, а в ней window.opener не понимает
и что делать?

danik.js 11.09.2013 10:36

Почему то думал что это старое свойство, так как свойства selectedIndex недостаточно , учитывая что селекты могут быть такими:
<select multiple size=2>
  <option>Bla Bla Bla</option>
  <option>Bla Bla Bla</option>
</select>

Как же в таких случаях получать массив выбраных опшнов?

рони 11.09.2013 10:54

danik.js,
Цитата:

Если select допускает множественный выбор (атрибут multiple), то значения можно получить/установить, сделав цикл по select.options:
http://learn.javascript.ru/form-elements#select-option

danik.js 11.09.2013 10:59

Ну это понятно - тупой перебор в цикле.
Мне вот интересно о чем думал человек, предложивший свойство multiple, но не подумавший о том, как же получить список выбранных опшнов.


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