Если IE 9 действительно ведет себя таким образом (у меня нет IE 9, и проблема не существует в IE 11 при использовании режима эмуляции IE 9), то это действительно странно, но технически это не ошибка. HTML 4,01 спецификация говорит о preselected options:
Если нет ВАРИАНТА элемента не установлен выбранный атрибут, агент пользователя поведения для выбора, какой вариант изначально выбран не определенно. Примечание. Так как существующие реализации обработки этого случая по-разному, текущая спецификация отличается от RFC 1866 (раздел [RFC1866] 8.1.3), который гласит, :
Исходное состояние выбрал первый вариант, если только выбранный атрибут не присутствует на любом из элементов.
Поскольку поведение пользовательского агента отличается, авторы должны убедиться, что каждое меню включает в себя предварительно выбранный ВАРИАНТ.
Это из года 1999 года, и браузеры обычно применяют принцип выбора первого варианта, если есть атрибут selected
. Но по-прежнему безопаснее использовать атрибут selected
.
Если вы не хотите любой варианта будет изначально выбрано, вставьте пустую опцию элемент в начале:
<select name=foo>
<option></option>
<option>1
<option>2
...
</select>
на стороне клиента и на стороне сервера код для обработки должен проверить для того, чтобы значение было пустым и соответствующим образом обрабатывало ситуацию - это означает, что пользователь не сделал никакого выбора, и вы можете принять это или обработать его как условие ошибки.