Какой атрибут элемента form определяет список кодировок
Перейти к содержимому

Какой атрибут элемента form определяет список кодировок

  • автор:

HTML тег

HTML тег создаёт HTML форму, которая используется для отправки введённых пользователем данных на сервер.

Так как сама форма не предоставляет никаких средств для пользовательского ввода данных, внутри элемента располагают другие элементы, цель которых предоставить пользователю различные способы ввода данных:

Помимо этих элементов, внутри формы можно использовать и любые другие HTML-элементы.

По умолчанию форма никак не отображается на веб-странице, видны только элементы расположенные внутри неё, однако с помощью CSS можно придать форме любой внешний вид.

Атрибуты

accept-charset: Указывает кодировку символов или список кодировок, разделенных пробелами, для введенных в форму данных, переданных на сервер для обработки. Если данные включают в себя символы, не поддерживающиеся указанной кодировкой, то браузер пытается определить соответствующую для них кодировку. Если соответствующая кодировка не может быть определена, то символы кодируются в числовые коды.

  • on: браузер автоматически показывает значения вводимые ранее пользователем (значение по умолчанию).
  • off: пользователь должен сам вводить значения для каждого поля при каждом использовании формы. Ранее вводимые значения показываться не будут.

Примечание: атрибут autocomplete не поддерживается браузером Opera.

  • application/x-www-form-urlencoded: значение по умолчанию: все символы кодируются перед отправкой (пробелы преобразуются в символ » + «, а специальные символы в значения ASCII HEX).
  • multipart/form-data: символы не кодируются. Используется для элементов , у которых в атрибуте type установлено значение » file «.
  • text/plain: пробелы преобразуются в символ «+», но не кодирует в шестнадцатеричные значения спецсимволы, такие как апострофы.
  • get: данные передаются в адресной строке браузера в виде пар «имя=значение» путём их добавления в конце URL-адреса. В качестве разделителя между основным URL-адресом и передаваемыми данными используется знак вопроса ( ? ), для разделения передаваемых данных между собой используется символ амперсанда ( & ). Данный метод применяется при отправке данных небольшого размера.
  • post: данные передаются не как часть URL, а в качестве содержимого запроса браузера. Данный метод применяется для отправки данных большого объёма.

Примечание: атрибут novalidate не поддерживается в IE9 и более ранних версиях, и в Safari.

  • _blank: открывает документ в новом окне или вкладке.
  • _self: открывает документ в той же директории, где располагается ссылка (значение по умолчанию).
  • _parent: открывает документ в родительском фрейме.
  • _top: открывает документ во всю ширину окна.
  • имя_фрейма: открывает документ в iframe, имя которого было указано в качестве значения.

Стиль по умолчанию

form

Пример

Имя:
Фамилия:

Результат данного примера в окне браузера:

Пример использования тега 

<form></p>
<p>» width=»288″ height=»180″ /></p>
<p>Копирование материалов с данного сайта возможно только с разрешения администрации сайта <br />и при указании прямой активной ссылки на источник. <br />2011 – 2023 © puzzleweb.ru | razumnikum.ru</p>
<h2>Какой атрибут элемента form определяет список кодировок</h2>
<p>На рис. 8.12 приведен вид созданной формы в окне браузера.</p>
<p>Рис.8.12 Создание кнопок с помощью элемента HTML BUTTON</p>
<p>Если для представления кнопок используются изображения (элемент IMG), то необходимо предусмотреть альтернативный текст.</p>
<p><b><i>Элементы SELECT, OPTGROUP и OPTION.</i> </b> Элемент SELECT может быть представлен в виде поименованного поля с возможностью прокрутки. Оно может содержать списки или использовать другие механизмы, например, выпадающие меню. Число строк определяется соответствующими атрибутами. Начальный и конечный теги в записи HTML — документа: обязательны.</p>
<p>Определения атрибутов элемента SELECT:</p><div class='code-block code-block-1' style='margin: 8px 0; clear: both;'>
<!-- 1agladky -->
<script src=

— name = cdata. Определяет имя управляющего элемента.

— size = number. Если элемент SELECT представлен в виде списка с возможностью прокрутки, этот атрибут определяет число строк в списке, видимых на экране.

— m ultiple. Если этот логический атрибут установлен, он позволяет выбирать несколько пунктов. Если он не установлен, в элементе SELECT можно выбрать только один вариант.

Элемент SELECT создает меню. Каждый вариант пункт меню представляется элементом OPTION. Элемент SELECT должен содержать хотя бы один элемент OPTION.

Элемент OPTGROUP позволяет авторам логически группировать варианты. Обычно это используется, если пользователь должен делать выбор в длинном списке вариантов. Группы связанных вариантов проще просматривать и запоминать, чем один длинный список вариантов. В HTML 4.0 все элементы OPTGROUP должны задаваться непосредственно в элементе SELECT (т.е. группы не могут быть вложенными).

Варианты могут быть выбраны заранее. Агенты пользователей должны определять, какие варианты выбраны, следующим образом:

— Если ни для одного элемента OPTION не установлен атрибут selected, ни один вариант заранее не выбран.

— Если для одного элемента OPTION установлен атрибут selected, этот вариант должен быть выбран заранее.

— Если для элемента SELECT установлен атрибут multiple, и для нескольких элементов OPTION установлен атрибут selected, они должны быть выбраны заранее.

Считается ошибкой, если для нескольких элементов OPTION установлен атрибут selected, а для элемента SELECT не установлен атрибут multiple.

Элемент OPTGROUP используется для создания группы вариантов. Начальный и конечный теги: обязательны.

В качестве атрибута элемента OPTGROUP используется: label = text — метка группы вариантов.

Элемент OPTION— вариант выбора. Начальный тег: обязателен. Конечный тег: optional.

Определения атрибутов элемента OPTION

— s elected. Если этот логический атрибут установлен, то данный вариант считается выбранным заранее.

— value = cdata. Определяет исходное значение элемента формы. Если этот атрибут не установлен, исходное значение устанавливается равным содержимому элемента OPTION.

— label = text. Позволяет авторам определить более короткую метку для варианта, чем содержимое элемента OPTION. Если этот атрибут определен, агенты пользователей должны использовать его значение вместо содержимого элемента OPTION в качестве метки варианта.

При представлении пункта меню агенты пользователей используют значение атрибута label элемента OPTION в качестве выбора. Если этот атрибут не определен, агенты пользователей используют содержимое элемента OPTION.

Атрибут label элемента OPTGROUP определяет метку группы вариантов.

В качестве примера рассмотрим использование управляющего элемента SELECT и OPTION .

17 Формы

Форма HTML это раздел документа, содержащий обычные данные, разметку, специальные элементы, называемые «элементы управления » (переключатель, radio-кнопка, меню и т.д.), и лэйблы для этих элементов управления.
Пользователи обычно «заполняют» форму, изменяя содержимое её элементов (вводя текст, выбирая пункты меню и т.д.), прежде чем отправить её агенту для обработки (напр., Web-серверу, mai-серверу и т.п.)

Вот пример простой формы, включающей лэйблы, radio-кнопки и кнопки push (для очистки или отправки формы):

Last name: email: Male Female

Примечание. Эта спецификация содержит более развёрнутую информацию о формах в разделе вопросы отображения форм .

17.2 Элементы управления

Имя элемента управления (ЭУ), , задаётся атрибутом name . Областью видимости атрибута name ЭУ внутри формы является элемент FORM .

Каждый ЭУ имеет начальное и текущее значение типа «символьная строка». См. определение каждого ЭУ для спецификации начальных значений и возможные ограничения значений, принимаемых ЭУ. В целом, может быть установлено атрибутом value ЭУ. Однако начальное значение ЭУ TEXTAREA задаётся его содержимым, а начальное значение ЭУ OBJECT в форме определяется реализацией данного объекта (т.е. находится вне пределов данной спецификации).

ЭУ вначале устанавливается в первоначальное значение. После этого текущее значение ЭУ можно изменять, взаимодействуя с пользователем, и с помощью скриптов (сценариев).

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

При отправке формы на обработку, некоторые ЭУ образуют пары «имя/значение», которые затем пересылаются с формой. ЭУ, чьи пары имя/значение высланы, называются «действующие ЭУ» .

17.2.1 Типы элементов управления формы (ЭУ)

HTML определяет следующие типы ЭУ:

  • кнопки submit : при активации кнопка submit отправляет форму . Форма может содержать несколько кнопок submit;
  • кнопки reset : при активации кнопка reset устанавливает все ЭУ в их начальные значения ;
  • кнопки push : кнопки push не имеют предопределённых функций. Каждая кнопка push может иметь клиентский сценарий (выполняемый на стороне клиента) , ассоциированный с атрибутом event/событие . При возникновении события (напр., пользователь нажал кнопку, отпустил её и т.д.), включается ассоциированный сценарий (скрипт). Автор должен указать язык сценария кнопки push путём объявления языка скриптов по умолчанию (в элементе META ).

Авторы создают кнопки, используя ЭУ BUTTON , или ЭУ INPUT . См. определение этих ЭУ .

Примечание. Авторы должны иметь в виду, что возможности ЭУ BUTTON богаче, чем у INPUT .

переключатели/checkboxes Переключатели (и radio-кнопки) это переключатели типа вкл./выкл., управляемые пользователем. Переключатель «включён», если установлен атрибут checked ЭУ. Если форма отправлена, только переключатель «включён» может быть «действующим» .

Несколько переключателей в форме могут использовать одно имя ЭУ . Так, например, переключатели позволяют пользователям выбрать несколько значений для одного свойства. ЭУ INPUT используется для создания переключателей.

radio-кнопки Radio-кнопки похожи на переключатели/checkboxes, за исключением того, что, при использовании одного и того же имени ЭУ , они действуют взаимоисключающе: если одна выбрана «включено», все остальные с тем же именем «выключены». Элемент INPUT используется для создания ЭУ «radio-кнопка». Если ни одна radio-кнопка из использующих общее имя первоначально не установлена во «включено», поведение пользовательского агента (ПА) по установлению того, какая из кнопок включена, не определено.
Примечание. Поскольку существующие приложения обрабатывают эту ситуацию по-разному, данная спецификация отличается от RFC 1866 ( [RFC1866] раздел 8.1.2.4) в следующем:

В определённый момент времени только одна radio-кнопка из набора может быть «включена». Если ни один из элементов набора radio-кнопок не установлен (`CHECKED’), тогда ПА обязан вначале включить первую из кнопок набора.

Поскольку поведение ПА различно, авторы должны убедиться, что в каждом наборе radio-кнопок одна «включена».

меню Меню дают возможность выбора из списка значений. Элемент SELECT создаёт меню в комбинации с элементами OPTGROUP и OPTION .
текстовые поля
Авторы могут создавать поля для ввода текста двух видов. Элемент INPUT создаёт однострочный ЭУ, а элемент TEXTAREA — многострочный. В обоих случаях, введённый текст становится текущим значением .
выбор файла/file select
ЭУ этого типа позволяют пользователям выбрать файлы, и их содержимое может пересылаться с формой. Элемент INPUT используется для создания ЭУ выбор файла/file select.
hidden control/скрытый ЭУ
Авторы могут создавать невидимые ЭУ, значения которых пересылаются вместе с формой. Обычно ЭУ этого типа используются для хранения информации при обмене клиент/сервер, которая иначе может быть утеряна из-за нестатичной природы HTTP (см. [RFC2616] ). Элемент INPUT используется для создание скрытых ЭУ/hidden control.
ЭУ object
Авторы могут вставлять в форму общие объекты, чьи ассоциированные значения пересылаются вместе с другими данными. Авторы создают объект с помощью ЭУ OBJECT .

Элементы, используемые для создания ЭУ, обычно размещаются внутри элемента FORM , но могут также находиться и вне объявления элемента FORM , если используются для создания пользовательского интерфейса. Этот вопрос рассматривается в разделе внутренние события . Обратите внимание — ЭУ вне формы не могут быть «действующими ЭУ» .

17.3 Элемент FORM

%block; |SCRIPT)+ -(FORM) -- интерактивная форма --> %attrs; -- %coreattrs , %i18n , %events -- %URI; #НЕОБХОДИМ -- обработчик на стороне сервера -- %ContentType; "application/x-www-form-urlencoded" %ContentTypes; #ПРЕДПОЛАГАЕТСЯ -- список типов MIME для загрузки файлов -- CDATA #ПРЕДПОЛАГАЕТСЯ -- имя формы (для скриптов) -- %Script; #ПРЕДПОЛАГАЕТСЯ -- событие: форма отправлена -- %Script; #ПРЕДПОЛАГАЕТСЯ -- событие: форма очищена -- accept-charset %Charsets; #ПРЕДПОЛАГАЕТСЯ -- список поддерживаемых наборов символов -- >

Начальный тег: необходим, Конечный тег: необходим

action = uri [CT] Определяет обработчик формы. Поведение пользовательского агента (ПА) для значений, отличных от HTTP URI не определено. method = get|post [CI] Определяет, какой метод HTTP используется для отправки набора данных формы . Возможные (нечувствительные к регистру) значения — «get» (по умолчанию) и «post». См. родственную информацию в разделе отправка формы . enctype = content-type [CI] Определяет тип содержимого/content type при отправке формы на сервер (если значение method’a — «post»). Значением по умолчанию этого атрибута является «application/x-www-form-urlencoded» . Значение «multipart/form-data» должно использоваться в комбинации с элементом INPUT , type =»file». accept-charset = список наборов символов [CI] Определяет список кодировок для вводимых данных, принимаемых сервером, обрабатывающим данную форму. Значением является список наборов символов , разделённых пробелами и/или запятыми. Клиент должен интерпретировать этот список как список XOR (exclusive-or), т.е. сервер может принять любой отдельный символ кодировки на каждый полученный объект. Значением по умолчанию этого атрибута является зарезервированная строка «UNKNOWN».
ПА могут интерпретировать это значение как кодировку символов, использованную для передачи документа, содержащего форму FORM . accept = content-type-list [CI] Определяет список разделённых запятыми типов содержимого, которые сервер-обработчик формы будет обрабатывать корректно. ПА могут использовать эту информацию для фильтрации несоответствующих файлов при запросе пользователя на выбор файлов, пересылаемых серверу (сравните элемент INPUT с type =»file»). name = cdata [CI] Этот атрибут именует элементы таким образом, что на них можно ссылаться из таблицы стилей или скрипта (сценария).
Примечание. Этот атрибут введён для обеспечения обратной совместимости. Приложения должны использовать атрибут id для идентификации элементов.

Атрибуты, определённые в другом месте

  • id , class (идентификаторы документа )
  • lang (язык ), dir (направление текста )
  • style (инлайн-стиль )
  • title (названиеэлемента )
  • target (целевой фрэйм )
  • onsubmit , onreset , onclick , ondblclick , onmousedown , onmouseup , onmouseover , onmousemove , onmouseout , onkeypress , onkeydown , onkeyup (внутренние события )

Элемент FORM действует как контейнер для ЭУ . Он определяет:

  • Вид формы (в зависимости от содержимого элементов).
  • Программу, которая будет обрабатывать заполненную и отправленную форму — обработчик формы (указанный в атрибуте action ). Программа должна разбирать пары имя/значение для их последующего использования.
  • Метод отправки данных пользователя на сервер (атрибут method ).
  • Кодировку символов, понимаемую сервером — для обработки формы (атрибут accept-charset ).
    ПА должны уведомлять пользователя о значении атрибута accept-charset и/или ограничивать возможность введения пользователем нераспознаваемых символов.

Форма может содержать текст и разметку (параграфы, списки и т.п.) в дополнение к ЭУ формы.

В следующем примере показана форма, обрабатываемая программой «adduser» после отправки.
Форма будет отправлена программе методом «post».

 
. содержимое формы.

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

Примечание. Обсуждение работы сервера, принимающего данные формы, находится за рамками данной спецификации.

17.4 Элемент INPUT

   %attrs; -- %coreattrs , %i18n , %events -- %InputType; TEXT -- тип ЭУ -- NUMBER #ПРЕДПОЛАГАЕТСЯ -- максимальное к-во символов для полей text -- alt CDATA #ПРЕДПОЛАГАЕТСЯ -- краткое описание -- usemap %URI; #ПРЕДПОЛАГАЕТСЯ -- использовать клиентские карты изображений -- NUMBER #ПРЕДПОЛАГАЕТСЯ -- позиция в порядке табуляции -- %Character; #ПРЕДПОЛАГАЕТСЯ -- символ быстрого доступа -- %Script; #ПРЕДПОЛАГАЕТСЯ -- элемент получил фокус -- %Script; #ПРЕДПОЛАГАЕТСЯ -- элемент потерял фокус -- %Script; #ПРЕДПОЛАГАЕТСЯ -- текст был выделен -- %Script; #ПРЕДПОЛАГАЕТСЯ -- значение элемента было изменено -- %ContentTypes; #ПРЕДПОЛАГАЕТСЯ -- список типов MIME для загрузки файлов -- >

Начальный тег: необходим, Конечный тег: запрещён

type = text|password|checkbox|radio|submit|reset|file|hidden|image|button [CI] Определяет тип создаваемого ЭУ . Значение этого атрибута по умолчанию — «text». name = cdata [CI] Имя ЭУ . value = cdata [CA] Начальное значение ЭУ. Не обязательно, если только атрибут type не имеет значение «radio» или «checkbox». size = cdata [CN] Сообщает пользовательскому агенту начальную ширину ЭУ. Ширина задаётся в пикселах , за исключением случаев, когда атрибут type имеет значение «text» или «password». В этом случае значение атрибута — (integer) целое число символов. maxlength = number [CN] Если атрибут type имеет значение «text» или «password», этот атрибут определяет максимальное количество символов, которое может ввести пользователь. Это число может оказаться больше установленного размера ( size ) . В этом случае ПА должен предоставить возможность прокрутки. По умолчанию значением этого атрибута является неограниченное количество. checked [CI] Если атрибут type имеет значение «radio» или «checkbox», данный булев атрибут определяет , что кнопка нажата. ПА должны игнорировать этот атрибут в ЭУ всех других типов. src = uri [CT] Если атрибут type имеет значение «image», этот атрибут устанавливает место нахождения изображения, используемого в качестве кнопки submit.

Атрибуты, определённые в другом месте

  • id , class (идентификаторы документа )
  • lang (язык ), dir (направление текста )
  • title (название элемента )
  • style (инлайн-стиль )
  • alt (альтернативный текст )
  • align (выравнивание )
  • accept (доступные для сервера типы содержимого )
  • readonly (ЭУ «только для чтения» )
  • disabled (недоступен )
  • tabindex (позиция при табуляции )
  • accesskey (символ быстрого доступа )
  • usemap (клиентская карта изображений )
  • ismap (серверная карта изображений )
  • onfocus , onblur , onselect , onchange , onclick , ondblclick , onmousedown , onmouseup , onmouseover , onmousemove , onmouseout , onkeypress , onkeydown , onkeyup (внутренние события )

17.4.1 Типы ЭУ, создаваемых в элементе INPUT

Тип ЭУ , определяемый элементом INPUT , зависит от значения атрибута type :

text Однострочный ЭУ для ввода текста . password Как «text», но вводимый текст изображается так, чтобы скрыть вводимые символы (напр., серией «звёздочек»). ЭУ этого типа часто используется для ввода специальной информации, напр., пароля. Заметьте, что текущее значение , это текст, введённый пользователем, а не текст, изображаемый ПА.

Примечание. Разработчики программного обеспечения должны иметь в виду, что этот механизм обеспечивает лишь некоторую защиту. Хотя пароль маскируется ПАгентом от случайного просмотра, он передаётся на сервер в виде обычного текста и может быть прочитан кем-нибудь, имеющим низкоуровневый доступ к сети.

checkbox Создаёт переключатель . radio Создаёт кнопку radio . submit Создаёт кнопку submit . image Создаёт кнопку submit . Значение атрибута src определяет URI изображения, служащего для украшения кнопки. Из соображений доступности, авторы должны предоставлять альтернативный текст установкой атрибута alt .

Если для щелчка на кнопке image используется указательное устройство (мышь и т.п.), форма отправляется и координаты щелчка передаются серверу. Значение Х измеряется в пикселах от левого края изображения, а значение У — в пикселах от верхнего края изображения. Отправленные данные включают значения name.x=x-value и name.y=y-value, где «name» это значение атрибута name , а x-value и y-value это значения координат x и y соответственно.

Если сервер выполняет разные действия в зависимости от места нажатия на элементе, пользователи неграфических браузеров окажутся в затруднительном положении. По этим причинам авторы должны предусматривать дополнительные варианты:

  • Использовать несколько кнопок submit (каждая со своим изображением) вместо единой графической кнопки submit. Авторы могут использовать таблицы стилей для управления положением кнопок.
  • Использовать клиентские карты изображений в сочетании со скриптами.

17.4.2 Примеры форм, содержащих ЭУ в элементе INPUT

Следующий фрагмент HTML определяет простую форму, которая даёт пользователю возможность ввести имя, фамилию, email адрес и пол. При активации кнопки submit, форма посылается программе, указанной в атрибуте action .

First name: Last name: email: Male Female

Эта форма будет выглядеть примерно так:

В разделе элемента LABEL мы обсуждаем установку лэйблов, таких как «First name».

В этом примере, функция verify JavaScript включается при возникновении события «onclick»:

См. раздел внутренние события о сценариях и событиях.

В следующем примере показано, как содержимое определённого пользователем файла может пересылаться с формой. Пользователь запрашивается о его (или её) имени и списке имён файлов, содержимое которых должно быть отправлено с формой. При установке значения enctype в «multipart/form-data» содержимое каждого файла упаковывается для отправки отдельным разделом составного документа.

 
Ваше имя? Какие файлы Вы отправляете?

17.5 Элемент BUTTON

%flow; )* -(A|%formctrl; |FORM|FIELDSET) -- кнопка push --> %attrs; -- %coreattrs , %i18n , %events -- value CDATA #ПРЕДПОЛАГАЕТСЯ -- отсылается на сервер при отправке формы -- NUMBER #ПРЕДПОЛАГАЕТСЯ -- позиция при табуляции -- %Character; #ПРЕДПОЛАГАЕТСЯ -- символ быстрого доступа -- %Script; #ПРЕДПОЛАГАЕТСЯ -- элемент получил фокус -- %Script; #ПРЕДПОЛАГАЕТСЯ -- элемент потерял фокус -- >

Начальный тег: необходим, Конечный тег: необходим

  • submit: создаёт кнопку submit . Это значение по умолчанию.
  • reset: создаёт кнопку reset .
  • button: создаёт кнопку push .

Атрибуты, определённые в другом месте

  • id , class (идентификаторы документа )
  • lang (язык ), dir (направление текста )
  • title (название элемента )
  • style (инлайн-стиль )
  • disabled (недоступен )
  • accesskey (символ быстрого доступа )
  • tabindex (позиция при табуляции )
  • onfocus , onblur , onclick , ondblclick , onmousedown , onmouseup , onmouseover , onmousemove , onmouseout , onkeypress , onkeydown , onkeyup (внутренние события )

Кнопки, созданные элементом BUTTON работают почти так же, как и кнопки, созданные элементом INPUT , но дают больше возможностей представления: элемент BUTTON может иметь содержимое. Например, элемент BUTTON , содержащий изображение, работает и может выглядеть как элемент INPUT , чей type установлен «image», но элемент BUTTON может иметь содержимое.

Визуальные ПА могу представлять кнопку BUTTON с рельефом и смещением вверх/вниз при нажатии, в то время как они могут рассматривать кнопки INPUT только как «плоские» изображения.

Этот пример расширяет предыдущий, но создаёт кнопки submit и reset элементом BUTTON вместо INPUT . Кнопки содержат изображения так же, как элемент IMG .

 

First name: Last name: email: Male Female

Напоминаем, что авторы должны указывать альтернативный текст для элемента IMG .

Недопустимо ассоциировать карту изображений с IMG , который является содержимым элемента BUTTON .

НЕВЕРНОЕ ИСПОЛЬЗОВАНИЕ:
Это неверный HTML.

 %attrs; -- %coreattrs , %i18n , %events -- CDATA #ПРЕДПОЛАГАЕТСЯ -- имя поля -- NUMBER #ПРЕДПОЛАГАЕТСЯ -- видимые ряды -- NUMBER #ПРЕДПОЛАГАЕТСЯ -- позиция при табуляции -- %Script; #ПРЕДПОЛАГАЕТСЯ -- элемент получил фокус -- %Script; #ПРЕДПОЛАГАЕТСЯ -- элемент потерял фокус -- %Script; #ПРЕДПОЛАГАЕТСЯ -- значение элемента изменено -- >

Начальный тег: необходим, Конечный тег: необходим

Определения атрибутов элемента SELECT

name = cdata [CI] Устанавливает имя ЭУ . size = number [CN] Если элемент SELECT представлен в виде прокручиваемого списка, этот атрибут определяет количество видимых одновременно рядов в списке. Визуальные ПА не требуют представления элемента SELECT как прокручиваемого списка; они могут использовать для этого ниспадающее меню. multiple [CI] При установке это булев атрибут разрешает множественный выбор. Если не установлен, элемент SELECT допускает выбор только одной позиции.

Атрибуты, определённые в другом месте

  • id , class (идентификаторы документа )
  • lang (язык ), dir (направление текста )
  • title (название элемента )
  • style (инлайн-стиль )
  • disabled (недоступен )
  • tabindex (табуляция )
  • onclick , ondblclick , onmousedown , onmouseup , onmouseover , onmousemove , onmouseout , onkeypress , onkeydown , onkeyup (внутренние события )

Элемент SELECT создаёт меню . Каждая опция выбора представляется элементом OPTION . Элемент SELECT должен содержать не менее одного элемента OPTION .

Элемент OPTGROUP позволяет группировать опции логически. Это особенно удобно, когда пользователь должен выбрать из большого списка опций: группы связанных опций легче осмыслить и запомнить, чем один большой список опций. В HTML 4 все элементы OPTGROUP должны быть определены непосредственно в элементе SELECT (т.е. группы не могут быть вложенными).

17.6.1 Предустановленные опции

Ноль или более опций могут быть предустановлены для пользователя. ПА должны определять, какая опция является предустановленной, следующим образом:

    Если ни один элемент OPTION не имеет установленного атрибута selected , поведение ПА по определению предустановленной опции не определено.
    Примечание. Поскольку существующие программы обрабатывают эту ситуацию по-разному, данная спецификация отличается от RFC 1866 ( [RFC1866] раздел 8.1.3):

Первоначально выбранной является опция 1, если только отсутствует атрибут SELECTED или любой из элементов .

 %attrs; -- %coreattrs , %i18n , %events -- %Text; #НЕОБХОДИМ -- для использования в иерархическом меню -- >

Начальный тег: необходим, Конечный тег: необходим

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

label = text [CS] Определяет лэйбл для группы опций.

Атрибуты, определённые в другом месте

  • id , class (идентификаторы документа )
  • lang (язык ), dir (направление текста )
  • title (название элемента )
  • style (инлайн-стиль )
  • disabled (недоступен )
  • onclick , ondblclick , onmousedown , onmouseup , onmouseover , onmousemove , onmouseout , onkeypress , onkeydown , onkeyup (внутренние события )

Примечание. Разработчики должны помнить, что следующие версии HTML могут расширить механизм группировки, чтобы разрешить вложенные группы (т.е., элементы OPTGROUP могут быть вложенными). Это позволит авторам определять возможность более сложного выбора.

 %attrs; -- %coreattrs , %i18n , %events -- %Text; #ПРЕДПОЛАГАЕТСЯ -- для использования в иерархических меню -- CDATA #ПРЕДПОЛАГАЕТСЯ -- значения по умолчанию для содержимого элемента -- >

Начальный тег: необходим, Конечный тег: не обязателен

Определения атрибутов элемента OPTION

selected [CI] Если установлен, этот булев атрибут определяет, какая из опций предустановлена. value = cdata [CS] Определяет начальное значение ЭУ. Если не установлен, начальное значение установлено на содержимое элемента OPTION . label = text [CS] Позволяет авторам определить более короткий лэйбл по сравнению с содержимым элемента OPTION . Если определён, ПА должен использовать значение этого атрибута вместо содержимого элемента OPTION в качестве лэйбла опции.

Атрибуты, определённые в другом месте

  • id , class (идентификаторы документа )
  • lang (язык ), dir (направление текста )
  • title (название элемента )
  • style (инлайн-стиль )
  • disabled (недоступен )
  • onclick , ondblclick , onmousedown , onmouseup , onmouseover , onmousemove , onmouseout , onkeypress , onkeydown , onkeyup (внутренние события )

При рассмотрении выбора опции меню ПА должен использовать значение атрибута label элемента OPTION в качестве выбора. Если этот атрибут не установлен, ПА должен использовать содержимое элемента OPTION .

Атрибут label элемента OPTGROUP определяет лэйбл для группы выбора.

В следующем примере создаётся меню, позволяющее пользователю выбрать, какой из 7 программных компонентов устанавливать. Первый и второй компоненты предустановлены, но могут быть отключены пользователем. Остальные компоненты не предустановлены. Атрибут size устанавливает, что видны только 4 ряда меню, хотя пользователь может выбирать из 7 опций. Другие опции могут стать доступными путём прокрутки.

После SELECT идут кнопки submit и reset.

    

Только выбранные опции будут действующими (используя имя ЭУ «component-select»). Если ни одна опция не выбрана, ЭУ является недействующим, и ни имя, ни какое-либо его значение не отсылаются серверу при отправке формы. Заметьте, что если атрибут value установлен, он определяет начальное значение ЭУ и является в то же время содержимым элемента.

В этом примере использован элемент OPTGROUP для группирования опций. Следующая разметка:

 

представляет такую группировку:

None PortMaster 3 3.7.1 3.7 3.5 PortMaster 2 3.7 3.5 IRX 3.7R 3.5R

Визуальные ПА могут позволять пользователям выбирать из группы опций иерархического меню или другим способом, отражающим структуру опций выбора.

Графический ПА может представить это так:

Этот рисунок показывает элемент SELECT как выпадающее меню. Верхний лэйбл меню показывает выбранное в данный момент значение (PortMaster 3, 3.7.1). Пользователь раскрыл два ниспадающих меню, но ещё не выбрал новое значение (PortMaster 2, 3.7). Заметьте, что каждое каскадное меню отображает лэйбл элемента OPTGROUP или OPTION .

17.7 Элемент TEXTAREA

 %attrs; -- %coreattrs , %i18n , %events -- CDATA #ПРЕДПОЛАГАЕТСЯ NUMBER #НЕОБХОДИМ NUMBER #НЕОБХОДИМ NUMBER #ПРЕДПОЛАГАЕТСЯ -- позиция при табуляции -- %Character; #ПРЕДПОЛАГАЕТСЯ -- символ быстрого доступа -- %Script; #ПРЕДПОЛАГАЕТСЯ -- элемент получил фокус -- %Script; #ПРЕДПОЛАГАЕТСЯ -- элемент потерял фокус -- %Script; #ПРЕДПОЛАГАЕТСЯ -- некоторый текст выделен -- %Script; #ПРЕДПОЛАГАЕТСЯ -- значение элемента изменено -- >

Начальный тег: необходим, Конечный тег: необходим

name = cdata [CI] Устанавливает имя элемента . rows = number [CN] Количество видимых строк. Пользователь может вводить большее число опций, поэтому ПА должен предоставить возможность прокрутки содержимого элемента, если оно выходит за пределы зоны видимости. cols = number [CN] Определяет видимую ширину, измеряемую в символах средней ширины. Пользователь должен иметь возможность ввести более длинную строку, чем заданная, поэтому ПА должны предоставить средства для прокрутки содержимого ЭУ, если оно выходит за пределы области видимости. ПА могут переносить строки видимого текста для того, чтобы видимыми длинные строки без необходимости прокрутки.

Атрибуты, определённые в другом месте

  • id , class (информация о документе )
  • lang (язык ), dir (направление текста )
  • title (название элемента )
  • style (инлайн-стиль )
  • readonly (элемент ввода «только для чтения» )
  • disabled (недоступен )
  • tabindex (табуляция )
  • onfocus , onblur , onselect , onchange , onclick , ondblclick , onmousedown , onmouseup , onmouseover , onmousemove , onmouseout , onkeypress , onkeydown , onkeyup (внутренние события )

Элемент TEXTAREA создаёт многострочный ЭУ для ввода текста . ПА должны использовать содержимое этого элемента как начальное значение элемента и отображать этот текст как начальный.

В этом примере создаётся ЭУ TEXTAREA , в котором 20 рядов и 80 столбцов, содержащий 2 строки начального текста. За ЭУ TEXTAREA идут кнопки submit и reset.

    

Установка атрибута readonly позволяет отображать в TEXTAREA неизменяемый текст.
Это отличается от использования стандартного текста разметки в документе, поскольку значение TEXTAREA отсылается вместе с формой.

17.8 Элемент ISINDEX

ISINDEX не рекомендуется . Этот элемент создаёт однострочное окно для ввода текста . Авторы должны использовать элемент INPUT для создания элементов для ввода текста .

prompt = text [CS] Не рекомендуется. Этот атрибут определяет строку промпта для текстового поля.

Атрибуты, определённые в другом месте

  • id , class (идентификаторы документа )
  • lang (язык ), dir (направление текста )
  • title (название элемента )
  • style (инлайн-стиль )

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

НЕ РЕКОМЕНДУЕТСЯ:
Следующее объявление ISINDEX :

можно переписать для INPUT так:

 
Введите Ваш текст для поиска:

Семантика ISINDEX. В настоящее время семантика элемента ISINDEX определяется хорошо, если только URI документа является HTTP URI. На практике строка ввода ограничивается набором символов Latin-1, так как отсутствует URI механизм определения другого набора символов.

17.9 Лэйблы

Некоторые ЭУ автоматически содержат лэйблы, ассоциированные с ними (кнопки), а другие — нет (поля ввода текста, переключатели, radio-кнопки и меню).

Для ЭУ, имеющих встроенные лэйблы, ПА должны использовать значения атрибута value как строку лэйбла.

Элемент LABEL используется для определения лэйблов в ЭУ, не имеющих встроенных лэйблов.

17.9.1 Элемент LABEL

%inline; )* -(LABEL) -- текст лэйбла элемента формы --> %attrs; -- %coreattrs , %i18n , %events -- IDREF #ПРЕДПОЛАГАЕТСЯ -- соответствует значению ID поля -- %Character; #ПРЕДПОЛАГАЕТСЯ -- символ быстрого доступа -- %Script; #ПРЕДПОЛАГАЕТСЯ -- элемент получил фокус -- %Script; #ПРЕДПОЛАГАЕТСЯ -- элемент потерял фокус -- >

Начальный тег: необходим, Конечный тег: необходим

for = idref [CS] Этот атрибут явно ассоциирует лэйбл с другим ЭУ. При наличии, значение этого атрибута должно быть тем же, что и значение атрибута id другого ЭУ этого же документа. При отсутствии, определяемая ссылка ассоциируется с содержимым элемента.

Атрибуты, определённые в другом месте

  • id , class (идентификаторы документа )
  • lang (язык ), dir (направление текста )
  • title (название элемента )
  • style (название стиля )
  • accesskey (символ быстрого доступа )
  • onfocus , onblur , onclick , ondblclick , onmousedown , onmouseup , onmouseover , onmousemove , onmouseout , onkeypress , onkeydown , onkeyup (внутренние события )

Элемент LABEL может использоваться для присоединения информации к ЭУ. Каждый элемент LABEL ассоциирован только с одним ЭУ формы.

Атрибут for явно ассоциирует лэйбл с другим ЭУ : значение атрибута for должно быть тем же, что и атрибута id ассоциированного ЭУ. Более, чем один LABEL может быть ассоциирован с элементом путём создания множественных ссылок атрибута for .

В этом примере создаётся таблица, для выравнивания двух ЭУ text и ассоциированных с ними лэйблов. Каждый лэйбл ассоциируется только с одним ЭУ text :

     Last name 

Этот пример дополняет предыдущий включением элементов LABEL :

Last name: email: Male Female

Чтобы ассоциировать лэйбл с другим ЭУ неявно, ЭУ должен находиться внутри содержимого элемента LABEL . В этом случае LABEL может содержать только один элемент управления. Лэйбл может находиться перед или после ассоциированного ЭУ.

В этом примере мы неявно ассоциируем два лэйбла с двумя ЭУ text :

 

Учтите. что эта техника не может использоваться, если для вывода используется таблица, и лэйбл находится в одной ячейке, а ассоциированный ЭУ - в другой ячейке.

Если LABEL получает фокус/focus , он передаёт фокус ассоциированному ЭУ. См. ниже раздел о клавишах быстрого доступа/access keys .

Лэйблы могут рассматриваться ПА различными способами (напр., визуально, речевым синтезатором и т.д.)

17.10 Структурирование формы: элементы FIELDSET и LEGEND

 %flow; )*) -- группа ЭУ --> %attrs; -- %coreattrs , %i18n , %events -- > %inline; )* -- "легенда" набора полей --> %attrs; -- %coreattrs , %i18n , %events -- %Character; #ПРЕДПОЛАГАЕТСЯ -- символ быстрого доступа -- >

Начальный тег: необходим, Конечный тег: необходим

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

  • top: "Легенда" находится сверху над набором полей. Это значение по умолчанию.
  • bottom: "Легенда" находится под набором полей..
  • left: "Легенда" находится слева от набора полей.
  • right: "Легенда" находится справа от набора полей.

Атрибуты, определённые в другом месте

  • id , class (идентификаторы документа )
  • lang (язык ), dir (направление текста )
  • title (название элемента )
  • style (название стиля )
  • accesskey (символ быстрого доступа )
  • onclick , ondblclick , onmousedown , onmouseup , onmouseover , onmousemove , onmouseout , onkeypress , onkeydown , onkeyup (внутренние события )

Элемент FIELDSET позволяет тематически группировать ЭУ и лэйблы. Группирование ЭУ облегчает пользователю понимание их назначение, одновременно облегчая навигацию табуляцией для визуальных ПА и речевую навигацию для ПА, ориентированных на голосовое управление. Правильное использование этого элемента делает документы более доступными.

Элемент LEGEND даёт возможность установить заглавие к FIELDSET . "Легенда" улучшает доступность, если FIELDSET просматривается невизуально.

В этом примере мы создаём форму, которая может заполняться в мед. учреждении. Она состоит из трёх разделов: персональная информация, история болезни и текущее лечение. Каждый раздел содержит ЭУ для ввода соответствующей информации:

 
Персональная информация Фамилия: Имя: Адрес: . другая информация.
История болезни Оспа Свинка Головокружение Кашель . другие данные.
Текущее лечение Лечитесь ли Вы сейчас? Да Нет Если Вы лечитесь, укажите ниже, как:

Заметьте, что в этом примере мы улучшили визуальное представление формы выравниванием элементов в каждом FIELDSET (с помощью таблиц стилей), изменив цвета и шрифты (с помощью таблиц стилей), добавив скрипты (т.е., чтобы открыть только "Текущее лечение", если пользователь укажет, что он/она лечится в данный момент) и т.д.

17.11 Передача фокуса элементу

Элемент в документе HTML должен получить фокус от пользователя, чтобы активизироваться для выполнения своих задач. Например, пользователь должен активизировать гиперссылку, определённую элементом A , чтобы перейти по ней. Так же необходимо передать фокус элементу TEXTAREA для того, чтобы ввести текст.

Существует несколько способов передачи фокуса элементу:

  • Указать на элемент указательным устройством.
  • Переходить от одного элемента к другому с помощью клавиатуры. Автор документа может установить порядок табуляции, определяющий последовательность получения элементами фокуса, если пользователь пользуется для навигации клавиатурой (см. навигация с помощью табуляции ). После выбора элемент может быть активизирован какой-нибудь другой последовательностью клавиш.
  • Выбрать элемент клавишами доступа (называемыми иногда "быстрые клавиши" или "горячие клавиши").

17.11.1 Навигация с помощью табуляции

tabindex = number [CN] Определяет позицию элемента в порядке табуляции в текущем документе. Это должно быть цифровое значение в диапазоне от 0 до 32767. ПА должны игнорировать ведущие нули.

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

Элементы, которые могут получать фокус, "перебираются" пользовательским элементом в соответствии со следующими правилами:

  1. Элементы, поддерживающие атрибут tabindex , и имеющие для него положительное значение, перебираются в первую очередь. Навигация проходит от элемента с наименьшим значением tabindex к элементу с наибольшим значением. Значения могут не быть непрерывной последовательностью или начинаться каким то определённым значением. Элементы, имеющие одинаковые значения tabindex , должны перебираться в том порядке, в котором они появляются в потоке символов.
  2. Элементы, не поддерживающие атрибут tabindex или поддерживающие его и устанавливающие значение "0", считаются текстом. Эти элементы перебираются в порядке, в котором они следуют в потоке символов.
  3. Недоступные элементы не перебираются при табуляции.

Следующие элементы поддерживают атрибут tabindex : A , AREA , BUTTON , INPUT , OBJECT , SELECT и TEXTAREA .

В этом примере порядок табуляции: BUTTON , элементы INPUT по порядку (заметьте, что "field1" и кнопка разделяют один индекс табуляции, но "field1" появляется позже в потоке символов), и наконец - гиперссылка, созданная элементом A .

A document with FORM . ещё текст. Go to the W3C Web site. . ещё. . ещё.

Клавиши табуляции. Реальная последовательность клавиш, вызывающая навигацию при помощи табуляции или активацию элементов, зависит от конфигурации ПА (напр., клавиша "tab" используется для навигации, а клавиша "enter" - для активации выбранного элемента).

ПА должны также определять последовательность клавиш для навигации в обратную сторону. Если достигнут конец (или начало) ряда табуляции, ПА должен "зацикливаться" на начало (или конец).

17.11.2 Клавиши быстрого доступа

accesskey = символ/character [CN] Устанавливает клавишу быстрого доступа к элементу. Клавиша доступа - это одиночный символ из набора символов документа.
Примечание. Автор должен учитывать при определении клавиш доступа метод ввода, применяемый предполагаемым пользователем.

Нажатие клавиши доступа, назначенной элементу, передаёт фокус этому элементу. Действие после получения фокуса зависит от элемента. Например, если пользователь активизирует гиперссылку, определённую элементом A , ПА обычно переходит по ссылке. Если пользователь активизирует radio-кнопку, ПА изменяет значение radio-кнопки. Если пользователь активирует поле text, оно становится доступным для ввода и т.д.

Следующие элементы поддерживают атрибут accesskey : A , AREA , BUTTON , INPUT , LABEL , LEGEND и TEXTAREA .

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

    

В следующем примере мы устанавливаем клавишу доступа гиперссылке, определённой элементом A . Нажатие клавиши переводит пользователя к другому документу, в данном случае - к оглавлению.

Вызов быстрых клавиш зависит от операционной системы. Например, на машинах с MS Windows обычно нужно нажимать "alt" одновременно с клавишей доступа. В системе Apple - "cmd" одновременно с клавишей доступа.

Отображение клавиш доступа зависит от ПА. Мы рекомендуем, чтобы авторы включали клавиши доступа в лэйблы. ПА должны рассматривать значение клавиш доступа так, чтобы подчеркнуть их значение и выделить из окружающего текста (например, подчёркиванием).


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

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

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

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

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

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

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

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

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

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

Примечание. Единственная возможность изменить значение атрибута disabled динамически - использование скриптов.


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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

17.13.3 Обработка данных формы

Если пользователь отправил форму (напр., активацией кнопки submit ), ПА обрабатывает её следующим образом:

Шаг 1 : Идентификация "действующих" ЭУ
Шаг 2: Создание набора данных формы
Шаг 3: Кодирование набора данных формы

Набор данных формы кодируется в соответствии с типом содержимого , определённым атрибутом enctype элемента FORM .

Шаг 4: Отправка кодированного набора данных формы

Наконец кодированные данные пересылаются обработчику, определённому в атрибуте action с использованием протокола, указанного в атрибуте method .

Данная спецификация не определяет все соответствующие методы отправки или типы содержимого , которые могут быть использованы с формами. Однако, ПА HTML 4 должны поддерживать установленные соглашения в следующих случаях:

  • Если method - "get" и action - HTTP URI, ПА берёт значение action , добавляет `?' к нему, затем присоединяет набор данных формы , кодированный с использованием типа содержимого "application/x-www-form-urlencoded". Затем ПА перенаправляет всё по гиперссылке на этот URI. В этом сценарии данные формы ограничены кодами ASCII.
  • Если method - "post" и action - HTTP URI, ПА проводит транзакцию HTTP "post", используя значение атрибута action и сообщение, созданное в соответствии с типом содержимого , определённым атрибутом enctype .

Для любых других значений action или method поведение не определено.

ПА должен уметь принять ответ от транзакций HTTP "get" и "post".

17.13.4 Типы содержимого формы

Атрибут enctype элемента FORM определяет тип содержимого , используемый при кодировке набора данных формы для отправки на сервер. ПА должен поддерживать типы содержимого, перечисленные ниже. Поведение для других типов содержимого не определено.

application/x-www-form-urlencoded

Это тип содержимого по умолчанию. Формы отправленные с содержимым этого типа, должны кодироваться так:

  1. Имена ЭУ и значения переводятся в escape-последовательности. Символы пробелов заменяются `+' , и затем зарезервированные символы переводятся в escape-последовательности, как описано в [RFC1738] , раздел 2.2:
    Неалфавитные символы заменяются `%HH' , знаком процента и двумя 16-ричными цифрами, представляющими ASCII-код символа. Символы новой строки представляются парами "CR LF" (напр., `%0D%0A' ).
  2. Пары имя/значение перечисляются в том порядке, в котором они появляются в документе. Имя отделено от значения знаком `=' и пары имя/значение отделены друг от друга знаком `&' .
multipart/form-data

Примечание. См. в [RFC2388] информацию о подгрузке файлов, включая проблемы обратной совместимости, взаимоотношения между "multipart/form-data" и другими типами содержимого, вопросы функционирования и т.д.

Типа содержимого "application/x-www-form-urlencoded" недостаточно для пересылки данных большого объёма данных бинарного типа или текста, содержащего не-ASCII символы. Тип содержимого "multipart/form-data" должен использоваться для отправки форм, содержащих файлы, не-ASCII данные и бинарные данные.

Содержимое "multipart/form-data" следует правилам всех составных MIME-данных, как описано в [RFC2045] . Определение "multipart/form-data" можно найти в регистре [IANA] .

Сообщение "multipart/form-data" содержит несколько частей, каждая из которых представляет "действующий" ЭУ . Эти части пересылаются обработчику в том же порядке, в каком соответствующие ЭУ появляются в потоке документа. Границы частей не должны появляться внутри каких-либо данных; то, как это достигается, находится за рамками данной спецификации.

Как и все многочастные типы MIME, каждая часть может иметь заголовок "Content-Type", который по умолчанию содержит "text/plain". ПА должны предоставлять заголовок "Content-Type" вместе с параметром "charset".

Каждая часть должна содержать:

  1. заголовок "Content-Disposition", значением которого является "form-data".
  2. атрибут имя, определяющий имя соответствующего ЭУ . Имена ЭУ, кодированные в оригинале в не-ASCII наборе символов , могут быть кодированы с использованием метода, описанного в [RFC2045] .

Таким образом, для ЭУ с именем "mycontrol", соответствующая часть будет определена:

Content-Disposition: form-data; name="mycontrol"

Как и в других передачах MIME, "CR LF" (т.е., `%0D%0A' ) используется для разделения строк данных.

Каждая часть может кодироваться, и заголовок "Content-Transfer-Encoding" предоставляется, если значение этой части не соответствует кодировке по умолчанию(7BIT) (см. [RFC2045] , раздел 6)

Если содержимое файла отправляется с формой, ввод файла должен идентифицироваться соответствующим типом содержимого (напр., "application/octet-stream"). Если несколько файлов возвращено как результат единого ввода формы, они должны быть возвращены как "multipart/mixed", внедрённые в "multipart/form-data".

ПА должен попытаться предоставить имя для каждого пересылаемого файла. Имя файла может быть определено параметром "filename" в заголовке 'Content-Disposition: form-data' или, в случае с нескольким файлами, заголовком 'Content-Disposition: file' подраздела. Если имя файла клиентской операционной системы не-US-ASCII, имя файла может быть приближено или кодировано с использованием метода [RFC2045] . Это подходит для всех тех случаев, когда, например, подгруженные файлы могут содержать ссылку друг на друга (напр., TeX файл и его ".sty" - дополнительное описание стиля).

Следующий пример иллюстрирует кодирование "multipart/form-data". Предположим, у нас есть такая форма:

Как Вас зовут? Какие файлы Вы послали?

Если пользователь вводит "Larry" в окне ввода текста и выделяет текстовый файл "file1.txt", ПА должен выслать обратно следующие данные:

Content-Type: multipart/form-data; boundary=AaB03x --AaB03x Content-Disposition: form-data; name="submit-name" Larry --AaB03x Content-Disposition: form-data; name="files"; filename="file1.txt" Content-Type: text/plain . содержимое файла file1.txt . --AaB03x--

Если пользователь выделит второй (image) файл "file2.gif", ПА может создать части так:

Content-Type: multipart/form-data; boundary=AaB03x --AaB03x Content-Disposition: form-data; name="submit-name" Larry --AaB03x Content-Disposition: form-data; name="files" Content-Type: multipart/mixed; boundary=BbC04y --BbC04y Content-Disposition: file; filename="file1.txt" Content-Type: text/plain . содержимое файла file1.txt . --BbC04y Content-Disposition: file; filename="file2.gif" Content-Type: image/gif Content-Transfer-Encoding: binary . содержимое файла file2.gif. --BbC04y-- --AaB03x--

Какой атрибут элемента form определяет список кодировок

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

Вот простая форма, включающая метки, кнопки с зависимой фиксацией и кнопки (очистка формы или отправка):

Мужской Женский

Примечание. В данной спецификации имеется более подробная информация о формах в подразделах о проблемах отображения форм.

17.2 Управляющие элементы

задается атрибутом name . Областью действия атрибута name для управляющего элемента в элементе FORM является элемент FORM .

Каждый управляющий элемент имеет начальное и текущее значение, оба они являются символьными строками. Информацию о начальных значениях и возможных ограничениях на значения см. в определении управляющего элемента. В общем случае управляющего элемента может задаваться с помощью атрибута value . Однако исходное значение элемента TEXTAREA задается его содержимым, а исходное значение элемента OBJECT в форме определяется реализацией объекта (т.е лежит вне области, рассматриваемой в данной спецификации).

управляющего элемента сначала устанавливается равным начальному значению. Затем текущее значение может изменяться пользователем или скриптами.

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

Когда форма предоставляется для обработки, с формой передаются пары управляющий элемент-текущее значение. Передаваемые пары имя/значение называются успешными управляющими элементами.

17.2.1 Типы управляющих элементов

  • кнопки отправки : При активизации такой кнопки производится отправка формы. В форме может быть несколько кнопок отправки.
  • кнопки сброса : При активизации такой кнопки для всех управляющих элементов устанавливаются исходные значения.
  • прочие кнопки : Для таких кнопок действие по умолчанию не определено. С атрибутами событий каждой такой кнопки могут быть связаны клиентские скрипты. Если происхходит событие (например, пользователль нажимает кнопку, отпускает ее и т.д.), включается связанный с событием скрипт.

Авторы создают кнопки с помощью элемента BUTTON или INPUT . Подробнее об определении различных типов кнопок см. в определении этих элементов.

Примечание. Авторам следует обратить внимание на то, что элемент BUTTON предоставляет более широкие возможности представления кнопки, чем элемент INPUT .

флажки Флажки (и кнопки с зависимой фиксацией) - это переключатели вкл./выкл., которые могут переключаться пользователем. Переключатель "включен", если для управляющего элемента установлен атрибут selected .

При отправке формы успешными могут стать только включенные переключатели. Несколько флажков в форме могут иметь одно и то же имя управляющего элемента. Таким образом, например, флажки позволяют пользователям выбрать несколько значений для одного и того же свойства. Для создания флажков используется элемент INPUT . кнопки с зависимой фиксацией Кнопки с зависимой фиксацией похожи на флажки за исключением того, что, если несколько кнопок используют одно и то же имя управляющего элемента, они являются взаимоисключающими: если одна кнопка включена, другие обязательно выключены. Для создания кнопок с зависимой фиксацией используется элемент INPUT . меню Предоставляют пользователям варианты на выбор. Меню создается с помощью элемента SELECT , а также элементов OPTGROUP и OPTION . текстовый ввод Для ввода текста пользователем авторы могут создавать управляющие элементы двух типов. Элемент INPUT создает управляющий элемент для ввода текста из одной строки, а элемент TEXTAREA - элемент для ввода текста из нескольких строк. В обоих случаях вводимый текст становится текущим значением управляющего элемента. выбор файлов Управляющие элементы этого типа позволяют пользователям выбирать файлы, содержимое которых может передаваться вместе с формой. Для создания этого управляющего элемента используется элемент INPUT . скрытые управляющие элементы Авторы могут создавать управляющие элементы, не представляемые пользователям, но имеющие значения, которые передаются с формой. Обычно они используются для хранения информации между обменом клиент/сервер, которая в противном случае могла бы пропасть вследствие stateless природы протокола HTTP (см. [RFC2068]). Для создания скрытого управляющего элемента используется элемент INPUT . объекты Авторы могут помещать в формы общие объекты, так что связанные с ними значения будут передаваться с другими управляющими элементами. Для создания таких управляющих элементов используется элемент OBJECT .

Элементы, используемые для создания управляющих элементов, обычно располагаются в элементе FORM , но могут находиться и за пределами объявления FORM , если они используются для построения интерфейса пользователя. Это обсуждается в разделе о внутренних событиях. Обратите внимание, что управляющие элементы за пределами формы не могут быть успешными.

17.3 Элемент FORM

FORM - - (%block;|SCRIPT)+ -(FORM) -- интерактивная форма --> %attrs; -- %coreattrs, %i18n, %events -- action %URI; #REQUIRED -- обработчик формы на сервере -- method (GET|POST) GET -- метод HTTP, используемый для отправки формы-- enctype %ContentType; "application/x-www-form-urlencoded" onsubmit %Script; #IMPLIED -- форма отправлена -- onreset %Script; #IMPLIED -- форма сброшена -- accept-charset %Charsets; #IMPLIED -- список поддерживаемых наборов символов -- >

Начальный тег: обязателен, Конечный тег: обязателен

Определения атрибутов action = uri [CT] Задает агента для обработки формы. Например, значением может быть URI HTTP (для передачи формы в программу) или mailto URI (для отправки формы по электронной почте). method = get|post [CI] Определяет метод HTTP, используемый для передачи набора данных формы. Возможные значения (с учетом регистра) - "get" (по умолчанию) и "post". Подробнее см. в разделе об отправке формы. enctype = content-type [CI] Этот атрибут задает тип содержимого, используемый для отправки формы на сервер (если для метода используется значение "post"). По умолчанию для этого атрибута используется значение "application/x-www-form-urlencoded" . С элементом INPUT , type ="file" должно использоваться значение "multipart/form-data" . accept-charset = список наборов символов [CI] Этот атрибут задает список кодировок символов для ввода данных, которые должны приниматься обрабатывающим эту форму сервером. Значением является разделенный пробелами и/или запятыми список значений charset. Сервер должен интерпретировать этот список как список исключающих или, то есть он должен принимать любую кодировку для загруженного объекта.

По умолчанию значением этого атрибута является зарезервированная строка "UNKNOWN". Агенты пользователей могут интерпретировать это значение как кодировку символов, используемую для передачи документа, содержащего этот элемент FORM . accept = content-type-list [CI] Этот атрибут определяет разделенным запятыми список типов содержимого, которые должен корректно обрабатывать сервер, обрабатывающий форму. Агенты пользователей могут использовать эту информацию для отфильтровывания отвечающих спецификации файлов при предложении пользователю выбора файлов для отправки на сервере (если в элементе INPUT указано type ="file").

  • id , class (идентификаторы в пределах документа)
  • lang (информация о языке), dir (направление текста)
  • style (встроенная информация о стиле)
  • title ( заголовок элемента)
  • target (target frame information)
  • onsubmit , onreset , onclick , ondblclick , onmousedown , onmouseup , onmouseover , onmousemove , onmouseout , onkeypress , onkeydown , onkeyup (внутренние события)
  • Макет формы (дается содержимым элемента).
  • Программу, которая будет обрабатывать заполенную и переданную форму (атрибут action ). Получающая форму программа должна иметь возможность определения пар имя/значение, чтобы их использовать.
  • Метод отправки данных на сервер (атрибут method ).
  • Кодировку символов, которая должна приниматься сервером для обработки этой формы (атрибут accept-charset ). Агенты пользователей могут рекомендовать пользователю значение атрибута accept-charset и/или не позволять пользователям вводить нераспознаваемые символы.

Форма помимо управляющих элементов может содержать текст и разметку (абзацы, списки и т.д.).

В следующем примере показана форма, которая должна обрабатываться программой "adduser". Эта форма будет отправляться с использованием метода HTTP "post".

 
. содержимое формы.

В следующем примере показана отправка формы на адрес электронной почты:

 
. содержимое формы.

Информацию о том, как агенты пользователя должны подготавливать данные формы для серверов и как они должны обрабатывать ответы от сервера Вы можете найти в разделе об отправке формы.

Примечание. Дальнейшее обсуждение поведения серверов, принимающих данные формы, лежит вне области, рассматриваемой в данной спецификации.

17.4 Элемент INPUT

  INPUT - O EMPTY -- управляющий элемент формы --> %attrs; -- %coreattrs, %i18n, %events -- type %InputType; TEXT -- тип вводимой информации -- name CDATA #IMPLIED -- передать как часть формы -- value CDATA #IMPLIED -- обязателен для кнопок с зависимой фиксацией и флажков -- checked (установлен) #IMPLIED -- для кнопок с зависимой фиксацией и флажков -- disabled (отключен) #IMPLIED -- в данном контексте недоступен -- readonly (только чтение)#IMPLIED -- для текста и паролей -- size CDATA #IMPLIED -- зависит от типа поля -- maxlength NUMBER #IMPLIED -- максимальное число символов в текстовом поле -- src %URI; #IMPLIED -- для полей с изображениями -- alt CDATA #IMPLIED -- краткое описание -- usemap %URI; #IMPLIED -- использовать клиентскую навигационную карту -- tabindex NUMBER #IMPLIED -- позиция в последовательности перехода -- accesskey %Character; #IMPLIED -- клавиша доступа -- onfocus %Script; #IMPLIED -- фокус на этом элементе -- onblur %Script; #IMPLIED -- фокус перемещен на другой элемент -- onselect %Script; #IMPLIED -- выделен некоторые текст -- onchange %Script; #IMPLIED -- значение элемента изменено -- accept %ContentTypes; #IMPLIED -- список типов MIME для загрузки файлов -- >

Начальный тег: обязателен, Конечный тег: запрещен

Определения атрибутов type = text|password|checkbox|radio|submit|reset|file|hidden|image|button [CI] Определяет тип управляющего элемента. По умолчанию используется значение "text". name = cdata [CI] Определяет имя управляющего элемента. value = cdata [CA] Определяет начальное значение управляющего элемента. Этот атрибут не обязателен, если только для атрибута type не установлено значение "radio". size = cdata [CN] Сообщает агенту пользователя начальную ширину управляющего элемента. Ширина дается в пикселах, если для атрибута type не установлено значение "text" или "password". В этом случае ширина задается в числе символов (число должно быть целым). maxlength = число [CN] Если для атрибута type установлено значение "text" или "password", этот атрибут определяет максимальное число символов, вводимых пользователем. Это число может превышать указанный в атрибуте size размер поля; в этом случае агент пользователя должен обеспечивать механизм прокрутки. По умолчанию число символов не ограничено. checked [CI] Если для атрибута type установлено значение "radio" или "checkbox", этот логический атрибут указывает, что флажок установлен. Агенты пользователей должны игнорировать этот атрибут для других типов управляющих элементов. src = uri [CT] Если атрибут type имеет значение "image", этот атрибут определяет местоположение изображения, используемое для представления графической кнопки.

Атрибуты, определяемые в другом месте

  • id , class (идентификаторы в пределах документа)
  • lang (информация о языке), dir (направление текста)
  • title (заголовок элемента)
  • style (встроенная информация о стиле)
  • alt (альтернативный текст)
  • align (выравнивание)
  • accept (допустимые типы содержимого для сервера)
  • readonly (управляющие элеметы ввода только для чтения)
  • disabled (отключенные управляющие элементы ввода)
  • tabindex (переход по нажатию клавиши tab)
  • accesskey (клавиши доступа)
  • usemap (клиентские изображения-карты)
  • onfocus , onblur , onselect , onchange , onclick , ondblclick , onmousedown , onmouseup , onmouseover , onmousemove , onmouseout , onkeypress , onkeydown , onkeyup (внутренние события)

Тип управляющего элемента, определяемый элементом INPUT , зависит от значения атрибута type : text Создает элемент для ввода текста из одной строки. password Аналогичен значению "text", но вводимый текст представляется таким образом, чтобы не отображать символы (например, в виде ряда звездочек). Этот управляющий элемент часто используется для ввода паролей. Обратите внимание, что текущим значением является текст, введенный пользователем, а не текст, представляемый агентом пользователя.

Примечание. Разработчикам приложений следует обратить внимание на то, что этот механизм обеспечивает только слабую защиту. Хотя пароль маскируется агентом пользователя от случайных наблюдателей, он передается на сервер в виде открытого текста, и его может прочесть любой пользователь, имеющий доступ к сети на низком уровне.

checkbox Создает флажок. radio Создает кнопку с зависимой фиксацией. submit Создает кнопку отправки. image Создает графическую кнопку отправки. Значение атрибута src задает URI изображения, используемого для представления кнопки. Из соображений доступности авторам следует предусматривать альтернативный текст для изображения с помощью атрибута alt .

Если для щелчка на изображении используется указующее устройство, на сервер передаются форма и координаты щелчка. Значение x измеряется в пикселах от левой границы изображения, а значение y - в пикселах от верхней границы изображения. В передаваемые данные включаются последовательности имя.x=значение-x и name.y=значение-y, где "имя" - значение атрибута name , а значение-x и значение-y - значения координат x и y соответственно.

Если сервер предпринимает различные действия в зависимости от места щелчка, пользователи неграфических браузеров не смогут воспользоваться этим свойством. По этой причине авторам следует предусматривать альтернативные подходы:

  • Использовать несколько кнопок отправки (каждая с отдельным изображением) вместо одной графической кнопки. Можно использовать для управления местоположением этих кнопок таблицы стилей.
  • Использовать клиентские изображения-карты и скрипты.

17.4.2 Примеры форм с управляющими элементами типа INPUT

В следующем фрагменте кода HTML определяется простая форма, позволяющая пользователям вводить имя, фамилию, адрес электронной почты и пол. В случае активизации кнопки отправки форма передается программе, указанной в атрибуте action .

Имя: Фамилия: email: Мужской Женский

Эта форма может представляться следующим образом:

В разделе об элементе LABEL мы обсудим разметку меток типа "First name".

В следующем примере в случае события "onclick" включается функция JavaScript с именем verify:

В следующем примере показано, как содержимое указанного пользователем файла -может передаваться вместе с формой. У пользователя запрашивается имя и список имен файлов, содержимое которых должно передаваться с формой. С помощью указания значение enctype для "multipart/form-data" содержимое всех файлов будет упаковываться для передачи в отдельные разделы существующего документа.

 
Как Вас зовут? Какие файлы Вы отправляете?

17.5 Элемент BUTTON

BUTTON - - (%flow;)* -(A|%formctrl;|FORM|FIELDSET) -- кнопка --> %attrs; -- %coreattrs, %i18n, %events -- name CDATA #IMPLIED value CDATA #IMPLIED -- передается на сервер при отправке -- type (button|submit|reset) submit - для использования в качестве кнопки в форме -- disabled (disabled) #IMPLIED -- в данном контексте недоступно -- tabindex NUMBER #IMPLIED -- положение в последовательности перехода-- accesskey %Character; #IMPLIED -- клавиша доступа -- onfocus %Script; #IMPLIED -- фокус на элементе -- onblur %Script; #IMPLIED -- фокус перемещен на другой элемент -- >

Начальный тег: обязателен, Конечный тег: обязателен

  • submit: Создает кнопку отправки. Это значение используется по умолчанию.
  • reset: Создает кнопку сброса.
  • button: Создает другую кнопку.

Атрибуты, определяемые в другом месте

Кнопки, создаваемые с помощью элемента BUTTON , действуют так же, как и кнопки, создаваемые с помощью элемента INPUT , но они обеспечивают более богатые возможности представления: элемент BUTTON может иметь содержимое. Например, элемент BUTTON , содержащий изображение, действует и может resemble подобно элементу INPUT , для атрибута type которого установлено значение "image", но тип элемента BUTTON может иметь содержимое content.

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

В следующем примере предыдущий пример расширяется, и кнопки отправки и сброса создаются с помощью элемента BUTTON вместо элемента INPUT . Используемое для кнопок изображение определяется элементом IMG .

 

Имя: Фамилия: email: Мужской Женский

Помните, что авторам следует предусматривать альтернативный текст для элемента IMG .

Не допускается связывать изображение-карту с элементом IMG , содержащимя в элементе BUTTON element.

ПРИМЕР НЕДОПУСТИМОГО ИСПОЛЬЗОВАНИЯ:
В следующем примере представлен недопустимый код HTML.

17.6 Элементы SELECT , OPTGROUP и OPTION

SELECT - - (OPTGROUP|OPTION)+ -- option selector --> %attrs; -- %coreattrs, %i18n, %events -- name CDATA #IMPLIED -- имя поля -- size NUMBER #IMPLIED -- число видимых строк -- multiple (multiple) #IMPLIED -- по умолчанию используется одно выделение -- disabled (disabled) #IMPLIED -- недоступно в данном контексте -- tabindex NUMBER #IMPLIED -- позиция в последовательности перехода -- onfocus %Script; #IMPLIED -- фокус перешел на элемент -- onblur %Script; #IMPLIED -- фокус ушел с элемента -- onchange %Script; #IMPLIED -- значение элемента изменилось -- >

Начальный тег: обязателен, Конечный тег: обязателен

Определения атрибутов элемента SELECT name = cdata [CI] Определяет имя управляющего элемента. size = number [CN] Если элемент SELECT представлен в виде списка с возможностью прокрутки, этот атрибут определяет число строк в списке, видимых в один момент времени. Визуальные агенты пользователей не обязательно должны представлять элемент SELECT в виде списка; они могут использовать другие механизмы - например, выпадающие меню. multiple [CI] Если этот логический атрибут установлен, он позволяет выбирать несколько пунктов. Если он не установлен, в элементе SELECT можно выбрать только один вариант.

Элемент SELECT создает меню. Каждый вариант пункт меню представляется элементом OPTION . Элемент SELECT должен содержать хотя бы один элемент OPTION .

Элемент OPTGROUP element позволяет авторам логически группировать варианты. Обычно это полезно, если пользователь должен делать выбор в длинном списке вариантов; группы связанных вариантов проще просматривать и запоминать, чем один длинный список вариантов. В HTML 4.0 все элементы OPTGROUP должны задаваться непосредственно в элементе SELECT (т.е. группы не могут быть вложенными).

17.6.1 Заранее выбранные варианты

  • Если ни для одного элемента OPTION не установлен атрибут selected , ни один вариант заранее не выбран.
  • Если для одного элемента OPTION установлен атрибут selected , этот вариант должен быть выбран зарнее.
  • Если для элемента SELECT установлен атрибут multiple , и для нескольких элементов OPTION установлен атрибут selected , они должны быть выбраны заранее.
  • Считается ошибкой, если для нескольких элементов OPTION установлен атрибуто selected , а для элемента SELECT не установлен атрибут multiple . Агенты пользователей могут по-разному обрабатывать эту ошибку, но не должны заранее выбирать более одного варианта.
OPTGROUP - - (OPTION)+ -- группа вариантов --> %attrs; -- %coreattrs, %i18n, %events -- disabled (disabled) #IMPLIED -- недоступно в данном контексте -- label %Text; #REQUIRED - использование в иерархических меню -- >

Начальный тег: обязателен, Конечный тег: обязателен

Определения атрибутов элемента OPTGROUP label = text [CS] Метка группы вариантов.

Атрибуты, определяемые в другом месте

  • id , class (идентификаторы в пределах документа)
  • lang (информация о языке), dir (направление текста)
  • title (заголовок элемента)
  • style (встроенная информация о стиле)
  • disabled (отключенные управляющие элементы ввода)
  • onfocus , onblur , onchange , onclick , ondblclick , onmousedown , onmouseup , onmouseover , onmousemove , onmouseout , onkeypress , onkeydown , onkeyup (внутренние события)

Примечание. Разработчикам рекомендуется иметь в виду, что в будущих версиях HTML механизм группировки может быть расширен для подержки вложенных групп (т.е. элементы OPTGROUP смогут быть вложенными). Это позволит авторам представлять более сложную иерархию вариантов.

OPTION - O (#PCDATA) -- вариант выбора --> %attrs; -- %coreattrs, %i18n, %events -- selected (selected) #IMPLIED disabled (disabled) #IMPLIED -- недоступно в данном контексте -- label %Text; #IMPLIED -- используется в иерархических меню -- value CDATA #IMPLIED -- по умолчанию - содержимое элемента -- >

Начальный тег: обязателен, Конечный тег: optional

Определения атрибутов элемента OPTION selected [CI] Если этот логический атрибут установлен, этот вариант выбран заранее. value = cdata [CS] Определяет исходное значение управляющего элемента. Если этот атрибут не установлен, исходное значение устанавливается равным содержимому элемента OPTION . label = text [CS] Позволяет авторам определить более короткую метку для варианта, чем содержимое элемента OPTION . Если этот атрибут определен, агенты пользователей должны использовать его значение вместо содержимого элемента OPTION в качестве метки варианта.

Атрибуты, определяемые в другом месте

  • id , class (идентификаторы в пределах документа)
  • lang (информация о языке), dir (направление текста)
  • title (заголовок элемента)
  • style (встроенная информация о стиле)
  • disabled (отключенные управляющие элементы ввода)
  • onfocus , onblur , onchange , onclick , ondblclick , onmousedown , onmouseup , onmouseover , onmousemove , onmouseout , onkeypress , onkeydown , onkeyup (внутренние события)

При представлении пункта меню агенты пользователей должны использовать значение атрибута label элемента OPTION в качестве выбора. Если этот атрибут не определен, агенты пользователей должны использовать содержимое элемента OPTION .

Атрибут label элемента OPTGROUP определяет метку группы вариантов.

В этом примере мы создадим меню, позволяющее пользователю выбрать, какую из семи программ установить. Первая и вторая программы выбраны заранее, но пользователь может отменить их выбор. Остальные программы заранее не выбраны. Атрибут size определяет, что меню должно занимать 4 строки, хотя пользователь и имеет 7 вариантов. Доступ к другим вариантам должен обеспечиваться с помощью механизма прокрутки.

За элементом SELECT следуют кнопки отправки и сброса.

    

Успешными будут только выбранные варианты (с использованием имени управляющего элемента "component-select"). Обратите внимание, что, если установлено значение атрибута value , оно определяет исходное значение управляющего элемента, в противном случае это будет содержимое элемента.

В этом примере мы используем элемент OPTGROUP для группировки вариантов. Следующая разметка:

 

представляет следующую группировку:

PortMaster 3 3.7.1 3.7 3.5 PortMaster 2 3.7 3.5 IRX 3.7R 3.5R

Визуальные агенты пользователей могут обеспечивать выбор в группах вариантов с помощью иерархических меню или с использованием любого другого механизма, отражающего структуру вариантов.

Графические агенты пользователей могут представлять это следующим образом:

Здесь показан элемент SELECT , представленный в виде каскадных меню. В вершине меню представлено выбранное в настоящий момент значение (PortMaster 3, 3.7.1). У пользователя имеется unfurled два каскадных меню, но он еще не выбрал новое значение (PortMaster 2, 3.7). Обратите внимание, что в каждом каскадном меню отображается метка элемента OPTGROUP или OPTION .

17.7 Элемент TEXTAREA

TEXTAREA - - (#PCDATA) -- текстовое поле из нескольких строк --> %attrs; -- %coreattrs, %i18n, %events -- name CDATA #IMPLIED rows NUMBER #REQUIRED cols NUMBER #REQUIRED disabled (disabled) #IMPLIED -- недоступно в данном контексте -- readonly (readonly) #IMPLIED tabindex NUMBER #IMPLIED -- позиция в последовательности перехода -- accesskey %Character; #IMPLIED -- клавиша доступа -- onfocus %Script; #IMPLIED -- фокус перешел к элементу -- onblur %Script; #IMPLIED -- фокус переведен на другой элемент -- onselect %Script; #IMPLIED -- выделен некоторый текст -- onchange %Script; #IMPLIED -- значение элемента изменилось -- >

Начальный тег: обязателен, Конечный тег: обязателен

Определения атрибутов name = cdata [CI] Имя управляющего элемента. rows = number [CN] Число видимых текстовых строк. Пользователи должны иметь возможность вводить большее количество строк, поэтому агенты пользователей должны обеспечивать средства прокрутки этого управляющего элемента, если содержимое уходит за пределы видимой области. cols = number [CN] Видимая ширина, выраженная шириной среднего символа. Пользователи должны иметь возможность вводить более длинные строки, поэтому агенты пользователей должны обеспечивать средства прокрутки этого управляющего элемента, если содержимое уходит за пределы видимой области. Агенты пользователей могут разбивать видимые тестовые строки, чтобы длинные строки были видны без прокрутки.

Атрибуты, определяемые в другом месте

  • id , class (идентификаторы в пределах документа)
  • lang (информация о языке), dir (направление текста)
  • title (заголовок элемента)
  • style (встроенная информация о стиле)
  • readonly (элементы ввода только для чтения)
  • disabled (отключенные управляющие элементы ввода)
  • tabindex (переход с помощью клавиши tab)
  • onfocus , onblur , onselect , onchange , onclick , ondblclick , onmousedown , onmouseup , onmouseover , onmousemove , onmouseout , onkeypress , onkeydown , onkeyup (внутренние события)

Элемент TEXTAREA создает управляющий элемент для многострочного ввода текста. Агенты пользователей должны использовать содержимое этго элемента как исходное значение управляющего элемента и представлять этот текст сначала.

В этом примере создается управляющий элемент TEXTAREA в 20 строк и 80 столбцов, в котором изначально имеется две строки текста. За элементом TEXTAREA следуют кнопки отправки и сброса.

    

Устанвока атрибута readonly позволяет авторам отображать неизменяемый текст в элементе TEXTAREA . В отличие от стандартной разметки текста в документе, при такой разметке значение элемента TEXTAREA передается с формой.

17.8 Элемент ISINDEX

ISINDEX является нежелательным. Этот элемент создает управляющий элемент для ввода текста из одной строки. Авторам следует использовать для создания управляющих элементов для ввода текста элемент INPUT .

Формальное определение см. в Transitional DTD.

Атрибуты, определяемые в другом месте

  • id , class (идентификаторы в пределах документа)
  • lang (информация о языке), dir (направление текста)
  • title (заголовок элемента)
  • style (встроенная информация о стиле)

Элемент ISINDEX создает управляющий элемент для ввода текста из одной строки, в который можно ввести любое число симвлов. Агенты пользователей могут использовать значение атрибута prompt в качестве запроса.

ПРИМЕР НЕЖЕЛАТЕЛЬНОГО ИСПОЛЬЗОВАНИЯ:
Следующее объявление ISINDEX :

можно переписать с использованием элемента INPUT следующим образом:

 
Введите фразу для поиска:

Семантика элемента ISINDEX. В настоящее время семантика элемента ISINDEX точно определена, только если базовый URI для влключающего элемента является URI HTTP. На практике в эту строку можно вводить только символы в кодировке Latin-1, поскольку для URI нет механизма задания другого набора символов.

17.9 Метки

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

Для управляющих элементов с неявными метками агенты пользователей должны использовать в качестве метки значение атрибута value .

Элемент LABEL используется для задания меток для управляющих элементов, не имеющих неявных меток.

17.9.1 Элемент LABEL

LABEL - - (%inline;)* -(LABEL) - текст метки поля формы --> %attrs; -- %coreattrs, %i18n, %events -- for IDREF #IMPLIED -- совпадает со значением ID поля -- accesskey %Character; #IMPLIED -- клавиша доступа -- onfocus %Script; #IMPLIED -- фокус перешел к элементу -- onblur %Script; #IMPLIED -- фокус переведен на другой элемент -- >

Начальный тег: обязателен, Конечный тег: обязателен

Определения атрибутов for = idref [CS] Явно связывает определяемую метку с другим управляющим элементом. Если указано значение этого атрибута, оно должно совпадать со значением атрибута id другого управляющего элемента в этом же документе. Если этот атрибут не указан, определяемая метка связывается с содержимым элемента.

Атрибуты, определяемые в другом месте

  • id , class (идентификаторы в пределах документа)
  • lang (информация о языке), dir (направление текста)
  • title (заголовок элемента)
  • style (встроенная информация о стиле)
  • accesskey (клавиши доступа)
  • tabindex (переход по клавише tab )
  • onfocus , onblur , onclick , ondblclick , onmousedown , onmouseup , onmouseover , onmousemove , onmouseout , onkeypress , onkeydown , onkeyup (внутренние события)

Элемент LABEL может использоваться для прикрепления к управляющим элементам информации. Каждый элемент LABEL связан ровно с одним управляющим элементом формы.

Атрибут for явно связывает метку с другим управляющим элементом: значение атрибута for должно совпадать со значением атрибута id связанного управляющего элемента. С одним и тем же управляющим элементом может быть связано несколько элементов LABEL , если создать несколько ссылок с помощью атрибута for .

В этом примере мы создадим таблицу, которая используется для выравнивания двух элементов для ввода текста и связанные с ними метки. Каждая метка явно связана с одним из полей вода:

       

Здесь мы расширим предыдущий пример и включим элементы LABEL .

Male Female

Чтобы неявно связать метку с другим управляющим элементом, этот управляющий элемент должен находиться в элементе LABEL . В таком случае элемент LABEL может содержать только один управляющий элемент. Сама метка может располагаться до или после связанного с ней управляющего элемента.

В этом примере мы неявно связываем две метки с двумя управляющими элементами для ввода текста:

 

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

Если на элемент LABEL переходит фокус, то он передается в связанный управляющий элемент. Примеры см. ниже в разделе о клавишах доступа.

Метки могут представляться агентами пользователей несколькими способами (например, визуально, прочитываться синтезаторами речи и т.д.)

17.10 Добавление в формы структуры: элементы FIELDSET и LEGEND

 FIELDSET - - (#PCDATA,LEGEND,(%flow;)*) - группа управляющих элементов формы --> %attrs; -- %coreattrs, %i18n, %events -- > LEGEND - - (%inline;)* -- legend набора полей --> %attrs; -- %coreattrs, %i18n, %events -- accesskey %Character; #IMPLIED -- клавиша доступа -- >

Начальный тег: обязателен, Конечный тег: обязателен

LEGEND Определения атрибутов

  • top: legend располагается сверху набора полей. Это значение используется по умолчанию.
  • bottom: legend располагается внизу набора полей.
  • left: legend располагается в левой части набора полей.
  • right: legend располагается в правой части набора полей.

Атрибуты, определяемые в другом месте

  • id , class (идентификаторы в пределах документа)
  • lang (информация о языке), dir (направление текста)
  • title (заголовок элемента)
  • style (встроенная информация о стиле)
  • accesskey (клавиши доступа)
  • onclick , ondblclick , onmousedown , onmouseup , onmouseover , onmousemove , onmouseout , onkeypress , onkeydown , onkeyup (внутренние события)

Элемент FIELDSET позволяет авторам группировать связанные метки и управляющие элементы по темам. Группировка управляющих элементов упрощает пользователям понимание назначения элементов, одновременно упрощая переход по клавише tab для визуальных агентов пользователей и речевую навигацию для звуковых агентов пользователей. Корректное использование этого элемента повышает доступность документов.

Элемент LEGEND позволяет авторам назначать заголовки для элемента FIELDSET . Legend повышает доступность, если элемент FIELDSET представляется невизуально.

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

 
Личная информация Фамилия: Имя: Адрес: . другая персональная информация.
История болезни Smallpox Mumps Dizziness Sneezing . продолжение истории болезни.
Текущее лечение Принимаете ли Вы сейчас медицинские препараты? Да Нет Если да, перечислите их ниже:

Обратите внимание, что в этом примере мы можем улучшить визуальное представление формы, добавив элементы в каждый элемент FIELDSET (с помощью таблиц стилей), добавив информацию о цвете и шрифте (с помощью таблиц стилей), добавив скрипты (например, чтобы область "текущее лечение" открывалась, только если пользователь указывает, что он проходит лечение) и т.д. /samp

17.11 Переход фокуса на элемент

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

Имеется несколько способов передачи фокуса элементу:

  • Указать элемент с помощью указательного устройства.
  • Перейти с одного элемента на другой с помощью клавиатуры. Автор документа может определить последовательность перехода, определяющую порядок получения элементами фокуса при переходе пользователя по документу с помощью клавиатуры (см. переход по клавише tab). Выбранный элемент можно активизировать с помощью другой последовательности клавиш.
  • Выбрать элемент с помощью клавиши доступа (иногда называется "клавиатурным сокращением").

17.11.1 Переход с помощью клавиши Tab

tabindex = number [CN] Определяет положение текущего элемента в последовательности перехода для текущего документа. Значение должно лежать в диапазоне от 0 до 32767. Агенты пользователей должны игнорировать начальные нули.

определяет порядок получения фокуса элементами при переходе с помощью клавиатуры. Последовательность перехода может включать элементы, вложенные в другие элементы.

Переход к элементам, которые могут получать фокус, должен осуществляться агентами пользователей в соответствии со следующими правилами:

  1. Переход к элементам, поддерживающим атрибут tabindex , которому назначено положительное значение, должен осуществляться в первую очередь. Переход производится от элементов с наименьшим значением атрибута tabindex до элементов с наивысшим значением. Значения не обязательно должны быть последовательными и не обязательно должны начинаться с какого-то конкретного значения. Переход к элементам с одинаковыми значениями атрибута tabindex должен осуществляться в порядке их нахождения в потоке символов.
  2. Переход к элементам, не поддерживающим атрибут tabindex или элементам, у которых значением этого атрибута является "0", выполняется в следующую очередь. Переход к этим элементам производится в порядке их нахождения в потоке символов.
  3. Отключенные элементы не участвуют в последовательности перехода.

Следующие элементы поддерживают атрибут tabindex : A , AREA , BUTTON , INPUT , OBJECT , SELECT и TEXTAREA .

В этом примере последовательность перехода будет включать элементы BUTTON , INPUT в порядке (обратите внимание, что "field1" и кнопка используют одно и то же значение атрибута tabindex, но "field1" находится потоке в потоке символов), и наконец, ссылка, создаваемая элементом A .

Документ с тегом FORM . некоторый текст. Посетите сайт W3C. . еще текст. . еще текст.

Клавиши перехода. Фактическая последовательность клавиш, обеспечивающая переход или активизацию элемента, зависит от конфигурации агента пользователя (например, клавиша "tab" используется для перехода, а клавиша "enter" - для активизации выбранного элемента).

Агенты пользователей могут также определять последовательности клавиш для перехода в обратном порядке. По достижении конца (или начала) последовательности агенты пользователей могут переходить в начало (или в конец).

17.11.2 Клавиши доступа

accesskey = character [CN] Назначает для элемента клавишу доступа. Клавиша доступа - это один символ из набора символов документа. Примечание. При определении клавиши доступа авторы должны учитывать способ ввода, который, скорее будет использоваться читателем.

Нажатие назначенной элементу клавиши доступа передает элементу фокус. Действие, происходящее по получении элементом фокуса, зависит от элемента. Например, если пользвоатель активизирует ссылку, определяемую элементом A , агент пользователя обычно производит переход по ссылке. Если пользователь активизирует кнопку с зависимой фиксацией, агент пользователя изменяет значение кнопки. Если пользователь активизирует текстовое поле, в него разрешается ввод и т.д.

Следующие элементы поддерживают атрибут accesskey : A , AREA , BUTTON , INPUT , LABEL , LEGEND и TEXTAREA .

В этом примере клавиша доступа "U" назначается метке, связанной с управляющим элементом INPUT . Нажатие клавиши доступа переводит фокус на метку, которая, в свою очередь, передает его связанному с ней управляющему элементу. После этого пользователь может ввести текст в область INPUT .

 

В этом примере мы назначаем клавишу доступа ссылке, определяемой элементом A . Нажатие этой клавиши приведет к переходу пользователя в другой документ, в данном случае - в оглавление.

Использование клавиши доступа зависит от системы. Например, на машинах под управлением MS Windows обычно вместе с клавишей доступа нужно нажимать клавишу "alt". В системах Apple обычно требуется нажатие клавиши "cmd".

Представление клавиши доступа зависит от агента пользователя. Авторам рекомендуется включать клавиши доступа в текст метки или туда, где применяется клавиша доступа. Агенты пользователей должны представлять значение клавиши доступа таким образом, чтобы подчеркнуть ее роль и дать отличить ее от других символов (например, с помощью подчеркивания).

17.12 Отключенные управляющие элементы и элементы только для чтения

В контекстах, где ввод пользователя нежелателен или не требуется, важна возможность отключения управляющего элемента или представление его только для чтения. Например, можно отключить кнопку отправки формы до ввода некоторых обязательных данных. Аналогично, автор может включить текст только для чтения, который должен передаваться с формой как значение. В следующих разделах описываются отключенные управляющие элементы и элементы только для чтения.

17.12.1 Отключенные управляющие элементы

disabled [CI] Если этот атрибут установлен для управляющего элемента формы, ввод пользователем в этот элемент невозможен.

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

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

Атрибут disabled поддерживают следующие элементы: BUTTON INPUT , OPTGROUP , OPTION , SELECT и TEXTAREA .

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

Представление отключенных элементов зависит от агента пользователя. Например, некоторые агенты пользователей "выделяют серым" отключенные пункты меню, метки кнопок и т.д.

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

Примечание. Единственным способом динамического изменения значения атрибута disabled является использование скрипта.

17.12.2 Управляющие элементы только для чтения

readonly [CI] Если этот атрибут установлен для управляющего элемента формы, изменение значения этого элемента невозможно.

Атрибут readonly определяет, может ли пользователь изменять содержимое управляющего элемента.

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

  • К элементам только для чтения переходит фокус, но пользователь не может изменять их.
  • Элементы только для чтения входят в последовательность перехода.
  • Элементы только для чтения могут быть успешными.

Атрибут readonly поддерживают следующие элементы: INPUT , TEXT , PASSWORD и TEXTAREA .

Представление элементов только для чтения зависит от агента пользователя.

Примечание. Единственным способом динамического изменения значения атрибута только для чтения является использование скриптов.

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

В следующих разделах объясняется передача данных формы агентами пользователей агентам обработки форм.

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

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

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

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

Примечание. При использовании метода "get" набор данных формы должен включать только символы набора ASCII. Только с методом "post" (с атрибутом enctype ="multipart/form-data") можно использовать весь набор символов [ISO10646].

17.13.2 Успешные управляющие элементы

  • Отключенные управляющие элементы не могут быть успешными .
  • Если в форме содержится несколько кнопок отправки, успешной является только активизированная кнопка.
  • Успешными могут быть все "включенные" флажки.
  • Для кнопок с зависимой фиксацией с одним и тем же значением атрибута name , успешной может быть только "включенная" кнопка.
  • Для менюимя управляющего элемента задается элементом SELECT , а значения - элементами OPTION . Успешными могут быть только выбранные пункты.
  • Текущее значение элемента выбора файлов является список из одного или нескольких имен файлов. После отправки формы содержимое каждого файла передается с остальными данными формы. Содержимое файла упаковывается в соответствии с типом содержимого формы.
  • Текущее значение управляющего элемента объекта определяется реализацией объекта.

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

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

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

В этом случае значению будет сопоставлено имя "invisible-password", и оно будет передаваться с формой.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *