В HTML, что должно произойти с выбранным, отключенным элементом опции?

NullPointerException s - исключения, возникающие при попытке использовать ссылку, которая указывает на отсутствие местоположения в памяти (null), как если бы она ссылалась на объект. Вызов метода по нулевой ссылке или попытка получить доступ к полю нулевой ссылки вызовет функцию NullPointerException. Они наиболее распространены, но другие способы перечислены на странице NullPointerException javadoc.

Вероятно, самый быстрый пример кода, который я мог бы придумать для иллюстрации NullPointerException, be:

public class Example {

    public static void main(String[] args) {
        Object obj = null;
        obj.hashCode();
    }

}

В первой строке внутри main я явно устанавливаю ссылку Object obj равной null. Это означает, что у меня есть ссылка, но она не указывает на какой-либо объект. После этого я пытаюсь обработать ссылку так, как если бы она указывала на объект, вызывая метод на нем. Это приводит к NullPointerException, потому что нет кода для выполнения в местоположении, на которое указывает ссылка.

(Это техничность, но я думаю, что она упоминает: ссылка, которая указывает на null, равна 't то же, что и указатель C, указывающий на недопустимую ячейку памяти. Нулевой указатель буквально не указывает на в любом месте , который отличается от указаний на местоположение, которое оказывается недопустимым.)

10
задан Nhan 3 December 2016 в 17:49
поделиться

6 ответов

В ответ на обновление в вопросе я сказал бы, что опция 'маркировки' должна можно выбрать, но или заставить его ничего не сделать на представлении или через JavaScript, не позволяйте форме быть отправленной без выбираемого значения (предположение, что это - обязательное поле).

С usablilty точки зрения я предложил бы делать обоих, тот способ, которым охвачены все основания.

2
ответ дан 4 December 2019 в 00:27
поделиться

Спецификации HTML немного неопределенны (т.е. полностью недостающий) относительно этой нечетной комбинации. Они действительно говорят, что элемент формы с отключенным атрибутом установил, не должно быть успешным, таким образом, он действительно не может быть выбран.

Браузер может представить его так, чтобы это выглядело выбранным, но это не должно обнаруживаться в ОТПРАВЛЕННЫХ данных. Похож на Opera, имеет его правильный мне.

6
ответ дан 4 December 2019 в 00:27
поделиться

Согласно Спецификации HTML 4.01, отключенной, стандартный атрибут для элемента опции, но поведение, вероятно, неопределенно на основе стандарта (перечитанный по информации об избранном элементе и элементах опций. Вот часть, я думаю, может пролить свет на причины Opera их реализации:

Когда установлено, отключенный атрибут имеет следующие эффекты на элемент:
* Отключенные средства управления не получают фокус.
* Отключенные средства управления пропускаются в переключении вкладок навигации.
* Отключенные средства управления не могут быть успешными.

Так, вероятно, что это - только одна из тех вещей, где спецификация достаточно неопределенна для обеспечения обеих интерпретаций. Это - вид особенности, которая делает программирование для сети таким образом забава и вознаграждение.:P

1
ответ дан 4 December 2019 в 00:27
поделиться

Спецификации HTML указывают, что оба выбранные и отключенные являются доступными вариантами для <option> элемент, но не указывает то, что должно произойти в случае конфликта. В разделе по отключенным средствам управления это говорит

Когда установлено, отключенный атрибут имеет следующие эффекты на элемент:

  • Отключенные средства управления не получают фокус.
  • Отключенные средства управления пропускаются в переключении вкладок навигации.
  • Отключенные средства управления не могут быть успешными.

это также говорит

То, как отключенные элементы представляются, зависит от агента пользователя. Например, некоторые агенты пользователя "отображают серым" отключенные пункты меню, названия кнопок, и т.д. В этом примере отключен ВХОДНОЙ элемент. Поэтому это не может получить ввод данных пользователем, и при этом его значение не будет отправлено с формой.

В то время как этот конкретный случай не указан, мое чтение этого говорит, что фактический рендеринг 'выбранного' 'отключенного' элемента оставляют до браузера. Пока пользователь не может выбрать его затем, это работает стандартом. Это действительно говорит, что сценарий может реагировать на элемент, таким образом, для JavaScript возможно установить отключенную опцию, как выбрано (или отключить выбранную опцию). Это не противоречит стандартам, но на представлении формы, что значение опции не могло быть выбранным значением. Список выборки был бы (я принять), должны иметь пустое значение в этом случае.

3
ответ дан 4 December 2019 в 00:27
поделиться

Мы просто исключаем холмы отбрасывания 'onchange' в целом, или должен "выбор..." опция можно выбрать, только без эффекта?

"onchange" выпадает, осуждены более одержимыми стандартами типами.

Я обычно делал бы некоторую клиентскую проверку. "Выберите объект из выпадающего" вида вещи. т.е.

должен "выбор..." опция можно выбрать, только без эффекта?

Таким образом, я просто сказал "Да" Вашему A или вопросу B.:/Извините!

0
ответ дан 4 December 2019 в 00:27
поделиться

к сожалению, действительно не имеет значения, что должно произойти, потому что IE не поддерживает отключенный атрибут на периоде опций.

http://webbugtrack.blogspot.com/2007/11/bug-293-cant-disable-options-in-ie.html

0
ответ дан 4 December 2019 в 00:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: