Опубликован: 19.05.2006 | Уровень: для всех | Доступ: платный
Лекция 17:

Формы

Недоступные ЭУ и ЭУ "только для чтения"

В тех случаях, когда ввод данных пользователем не нужен или не желателен, важно иметь возможность делать ЭУ недоступными или "только для чтения". Например, кнопка submit может быть недоступной, пока пользователь не введёт нужные данные. Также автор может включить отрывок текста только для чтения, который должен быть отправлен вместе с формой. Следующий раздел описывает Недоступные и "Только для чтения" ЭУ.

Недоступные ЭУ

Определение атрибута

disabled [CI]

Если установлен для ЭУ формы, этот булев атрибут делает ЭУ недоступным для пользователя.

Установленный атрибут disabled действует на ЭУ следующим образом:

  • Недоступный ЭУ не может получить фокус.
  • Недоступный ЭУ скрыт от навигации табуляцией.
  • Недоступный ЭУ не может быть "действующим".

Следующие ЭУ поддерживают атрибут disabled: BUTTON, INPUT, OPTGROUP, OPTION, SELECT и TEXTAREA.

Этот атрибут наследуется, но локальное объявление переопределяет наследуемое значение.

То, как недоступные ЭУ отображаются, зависит от ПА. Например, некоторые ПА выделяют серым цветом недоступные элементы меню, лэйблы кнопок и т.п.

В данном примере элемент INPUT недоступен. Таким образом, он не может принимать ввод пользователя, и его значение не будет отправлено вместе с формой.

<INPUT disabled name="fred" value="stone">
Примечание. Единственная возможность изменить значение атрибута disabled динамически - использование "Сценарии (скрипты)" .

ЭУ "только для чтения"

Определение атрибута

readonly [CI]

Если установлен, этот булев атрибут запрещает изменение ЭУ.

Атрибут readonly определяет, может ли ЭУ быть модифицирован пользователем.

Если установлен, атрибут readonly действует на элемент следующим образом:

  • ЭУ "только для чтения" может получить фокус, но не может быть модифицирован пользователем.
  • ЭУ "только для чтения" включён в навигацию табуляцией.
  • ЭУ "только для чтения" может быть "действующим".

Следующие ЭУ поддерживают атрибут readonly: INPUT и TEXTAREA.

То, как ЭУ "только для чтения" отображаются, зависит от ПА.

Примечание. Единственная возможность изменить значение атрибута readonly динамически - использование "Сценарии (скрипты)" .

Отправка формы

Этот раздел разъясняет, как ПА отправляет форму и как форма обрабатывается пользовательскими агентами.

Метод отправки формы

Атрибут method элемента FORM определяет метод HTTP, используемый для отправки формы программе-обработчику. Этот атрибут может иметь два значения:

  • get : методом " get " HTTP набор данных формы присоединяется к URI, определённому атрибутом action (со знаком " ?" в качестве разделителя), и этот новый URI высылается программе-обработчику.
  • post : методом " post " HTTP набор данных формы включается в тело формы и высылается программе-обработчику.

Метод " get " нужно использовать, если форма цельна (напр., не осуществляет побочных действий). Многие средства поиска в базах данных не имеют видимых побочных действий и являются идеальными приложениями для использования метода " get ".

Если сервис, ассоциированный с обработчиком формы, имеет побочный эффект (например, если форма модифицирует базу данных или подписку на сервис), должен использоваться метод " post ".

Примечание. Метод " get " ограничивает набор данных формы символами ASCII. Только метод " post "enctype=" multipart/form-data " ) специфицирован для использования с полным набором символов "Индекс элементов" .

"Действующие" ЭУ

Действующий ЭУ - это ЭУ, "годный" для отправки. Каждый действующий ЭУ имеет пару: имя ЭУ и текущее значение как часть отправляемого с формой набора данных формы. Действующий ЭУ должен быть определён внутри элемента форма / FORM и должен иметь имя ЭУ.

В то же время:

  • Недоступные ЭУ - те, которые не могут быть "действующими".
  • Если форма содержит больше одной кнопки submit, только активированная кнопка submit может быть действующей.
  • Все "on" переключатели могут быть действующими.
  • Из radio-кнопок, использующих одно значение атрибута name, только "on/включённая" radio-кнопка может быть действующей.
  • Для menu имя ЭУ предоставляется элементом SELECT, а значения предоставляются элементом OPTION. только выбранная опция может быть действующей. Если ни одна опция не выбрана, ЭУ является "недействующим", и ни имя, ни любое другое значение не пересылается серверу при отправке формы.
  • Текущее значение file select - это список из одного или более имён файлов. При отправке формы содержимое каждого файла отправляется вместе с данными формы. Содержимое файлов упаковывается в соответствии с типом содержимого формы.
  • Текущее значение объекта ЭУ его реализацией.

Если ЭУ не имеет текущего значения при отправке формы, ПА не должны обрабатывать его как "действующий" ЭУ.

Также ПА не должны рассматривать следующие объекты как действующие:

  • Кнопки Reset.
  • Элементы OBJECT, чей атрибут declare установлен.

Скрытые ЭУ и ЭУ, которые не отображаются из-за установок в "Таблицы стилей" , могут быть действующими. Например:

<FORM action="..." method="post">
<P>
<INPUT type="password" style="display:none"  
          name="invisible-password"
          value="mypassword">
</FORM>

создаёт значение в паре с "invisible-password", которое отправляется вместе с формой.

Ирина Кириллова
Ирина Кириллова

Нажимаю на ссылку на дополнительный материал и дополнение к информации-меня возвращает на первую страницу лекции. Подскажите, что делать? Или дополнительный материал платный?

Евгений Летенков
Евгений Летенков
Россия, Москва, РУДН, 2005
Иван Бокарёв
Иван Бокарёв
Австрия