Доступ к значению SELECT в Internet Explorer 6 - PullRequest
2 голосов
/ 11 августа 2011

Я ищу простое и короткое решение для доступа к значению SELECT на веб-сайте HTML в Internet Explorer (6 и 7).

HTML

<select id="s1">
    <option>Option1</option>
</select>

JS:

document.getElementById("s1").options[document.getElementById("s1").selectedIndex].value

Над кодом не работают.Я получаю пустые строки.

Я нашел одно решение - мне бы пришлось сделать так, чтобы каждый вариант выглядел так:

<option value="Option1">Option1</option>

Это работает, но мой веб-сайт в основном состоит изформы, поэтому такая операция увеличивает ее размер на 50-70%.

Знаете ли вы другие способы?

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

Ответы [ 2 ]

2 голосов
/ 11 августа 2011

Это потому, что у вас нет атрибута value в вашей опции:

<select id="s1">
    <option value="Option1">Option1</option>
</select>

Это вернет вам правильное значение.

Более новые браузеры отправляют option text вместо атрибута отсутствующего значения.

Что касается вашего вопроса относительно того, что использовать, правильный семантический способ будет использовать атрибут value. Что если ваш отображаемый текст отличается от значения? Вы бы изменили свой дизайн снова?

Если размер страницы имеет значение, попробуйте удалить пробел или сжатие содержимого вместо того, чтобы нарушать семантику. Обратите внимание, что некоторые старые версии IE6 (я думаю, IE6 с пакетом обновления 3 - это хорошо) могут плохо работать с содержимым GZipped.

2 голосов
/ 11 августа 2011

Использование,

document.getElementById("s1").options[document.getElementById("s1").selectedIndex].innerHTML;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...