2013-04-30 2 views
6

я under the impression, что для того, чтобы получить значение от <select> вы, по сути должен был сделать это:Получить значение <select> современный способ?

var sel = document.getElementById("my-select"); 
var val = sel.options[sel.selectedIndex].value; 

Но я ran into some code today, который просто делает document.getElementById('my-select').value, который, кажется, работает прекрасно в Chrome и Firefox.

В последнее время это изменилось или всегда так было? Насколько это поддерживается?

+2

Старые версии IE этого не сделают, но я уверен, что даже IE7 поддерживает его. – Pointy

+4

Это всегда было так, выбор получает то же значение, что и выбранная опция. – adeneo

+1

Это не то, что вы ожидаете, когда используете 'multiple =" multiple "', и вы должны использовать первый метод, чтобы получить выбранный параметр '.text'. В противном случае это просто, чтобы просто получить '.value' из выбранного – Ian

ответ

5

mySelect.value - стандарт W3C, по крайней мере, с 1 октября 1998 года. См. DOM Level 1 Specification. Однако некоторые браузеры IE, выпущенные после этой даты, не поддерживают его, включая IE8 (я только что протестировал его).

Редактировать: Как отметил @kennebec, проблема с IE8 заключается в том, что он не будет использовать текст опции, если нет установленного значения. Если все ваши параметры имеют значение, то myselect.value будет работать на IE8.

+1

, что Microsoft как стандартная как всегда – Rafael

Смежные вопросы