В моем конкретном примере я имею дело с раскрывающимся списком, например:
<select name="foo" id="bar">
<option disabled="disabled" selected="selected">Select an item:</option>
<option>an item</option>
<option>another item</option>
</select>
В моем конкретном примере я имею дело с раскрывающимся списком, например:
<select name="foo" id="bar">
<option disabled="disabled" selected="selected">Select an item:</option>
<option>an item</option>
<option>another item</option>
</select>
В ответ на обновление в вопросе, я бы сказал, что опция "label" должна быть выбрана, но либо не делает ничего при подаче или с помощью JavaScript, не разрешает отправку формы без выбора значения (считая это обязательным полем).
С точки зрения usablilty я бы предложил сделать оба, таким образом, все базы покрыты.
Спецификации HTML немного расплывчаты (т.е. полностью отсутствуют) в отношении этой нечетной комбинации. Они говорят, что элемент формы с отключенным набором атрибутов не должен быть успешным, поэтому его действительно невозможно выбрать.
Браузер может отобразить его так, чтобы он выглядел выбранным, но он не должен отображаться в данных POSTED. Похоже, Опера получила это право.
Спецификации HTML указывают, что выбранные и отключенные параметры доступны для элемента <option>
, но не указывают, что должно произойти в случае конфликта. В разделе отключенных элементов управления говорится:
При установке атрибут отключен следующие эффекты для элемента:
- Отключенные элементы управления не получают фокуса.
- Отключенные элементы управления пропускаются при навигации по табуляции.
- Отключенные элементы управления не могут быть успешными.
он также говорит
Как отключенные элементы отображаются, зависит от агента пользователя. Например, некоторые пользовательские агенты "серого цвета" отключили пункты меню, ярлыки кнопок и т.д. В этом примере элемент INPUT отключен. Следовательно, он не может принимать пользовательский ввод, и его значение не будет представлено с формой.
Пока этот конкретный случай не указан, в моем чтении говорится, что фактический рендеринг "выбранного" "отключенного" элемента остается в браузере. Пока пользователь не может выбрать его, он работает как стандарт. Он говорит, что script может воздействовать на элемент, поэтому Javascript может установить отключенную опцию как выбранную (или отключить выбранную опцию). Это не противоречит стандартам, но при отправке формы это значение параметра не может быть выбранным значением. В этом случае список выбора (я предполагаю) должен иметь пустое значение.
В соответствии с Спецификацией HTML 4.01 отключено является стандартным атрибутом для элемента option, но поведение вероятно, неопределенный на основе стандарта (прочитайте информацию о элементе select и элементах параметров. Вот часть, которая, я думаю, может пролить свет на причины Opera для их реализации:
При установке атрибут disabled имеет следующие эффекты для элемента:
* Отключенные элементы управления не получают фокуса.
* Отключенные элементы управления пропускаются в навигации по табуляции.
* Отключенные элементы управления не могут быть успешными.
Итак, очень вероятно, что это всего лишь одна из тех вещей, где спецификация достаточно смутная, чтобы допускать обе интерпретации. Это своего рода идиосинкразия, которая делает программирование для Интернета таким приятным и полезным.: P
Мы просто исключаем падение "onchange" в целом, или Опция "select..." может быть выбрана, просто без эффекта?
"onchange" выпадающие списки не одобряются более стандартными типами.
Я бы обычно делал некоторые проверки на стороне клиента. "Пожалуйста, выберите элемент из раскрывающегося списка". то есть.
если опция "select..." может быть выбрана, просто без эффекта?
Итак, я просто сказал "Да" на ваш вопрос A или B.:/Извините!
К сожалению, на самом деле не имеет значения, что должно произойти, потому что IE не поддерживает отключенный атрибут в период опций.
http://webbugtrack.blogspot.com/2007/11/bug-293-cant-disable-options-in-ie.html