2010-07-03 4 views
65

это вещи прекрасно работаетКак получить выделенный текст Javascript Select бокса

<select name="selectbox" onchange="alert(this.value)"> 

Но я хочу, чтобы выбрать текст. Я попытался таким образом

<select name="selectbox" onchange="alert(this.text)"> 

Это показывает неопределенный. Я нашел, как использовать DOM для получения текста. Но я хочу сделать это таким образом, я имею в виду использование только this.value.

ответ

107
this.options[this.selectedIndex].innerHTML 

должен предоставить вам «отображаемый» текст выбранного элемента. this.value, как вы сказали, просто дает значение атрибута value.

+0

Спасибо Это работает. – Aajahid

+6

Мне это не нравится. Хотя я уверен, что он работает с текущими браузерами, это странная смесь кода на основе элементов DOM и кода обработки формы старого стиля. 'options' возвращает список объектов' Option', которые, я не уверен, указаны где-то одинаковыми с элементами '

+0

Тим, объекты 'Option' те же, что и объекты' HTMLOptionElement'. Если вы возражаете против использования 'options', вы можете вместо этого использовать' children' или 'childNodes' (не помните точно, какой из них, я думаю, что они оба работают) –

55

Для того, чтобы получить значение выбранного элемента вы можете сделать следующее:

this.options[this.selectedIndex].text 

Здесь разные options из выбора доступны, и SelectedIndex используется, чтобы выбрать выбранный один, то его text.

Подробнее о выборе DOM here.

+0

'this.options [this.selectedIndex] .value' точно такой же, как' this.value', извините. –

+0

@ Delan Azabani - ответ обновлен. – Oded

+0

Когда я использую this.options [this.SelectedIndex] .context console console говорит - Ошибка: this.options [this.SelectedIndex] не определено – Aajahid

1

Я знаю, что никто не просит решение JQuery здесь, но, возможно, стоит отметить, что с JQuery вы можете просто попросить: $('#selectorid').val()

+1

Это будет работать, только если значение параметра не установлено. – profitehlolz

28

Пожалуйста, попробуйте этот код:

$("#YourSelect>option:selected").html() 
+0

супер простой! Благодаря! – Louie

+0

Так что спасибо! это возвращает значение выбранного элемента в combobox –

23

Просто использовать

$('#SelectBoxId option:selected').text(); Для Получение текста перечисленных

$('#SelectBoxId').val(); Для получения выбранного значения индекса

+1

Хотя это отлично работает для jQuery, OP только перечисляет javascript в качестве исходного тега. Тем не менее, +1, так как многие люди используют jQuery. – Sablefoste