Оглавление
Форма HTML это раздел документа, содержащий
обычные данные, разметку, специальные
элементы, называемые "элементы
управления" (переключатель, radio-кнопка, меню и
т.д.), и лэйблы для этих элементов управления.
Пользователи обычно "заполняют" форму,
изменяя содержимое её элементов (вводя
текст, выбирая пункты меню и т.д.), прежде чем
отправить её агенту для обработки (напр., Web-серверу,
mai-серверу и т.п.)
Вот пример простой формы, включающей лэйблы, radio-кнопки и кнопки push (для очистки или отправки формы):
<FORM action="http://somesite.com/prog/adduser" method="post"> <P> <LABEL for="firstname">First name: </LABEL> <INPUT type="text" id="firstname"><BR> <LABEL for="lastname">Last name: </LABEL> <INPUT type="text" id="lastname"><BR> <LABEL for="email">email: </LABEL> <INPUT type="text" id="email"><BR> <INPUT type="radio" name="sex" value="Male"> Male<BR> <INPUT type="radio" name="sex" value="Female"> Female<BR> <INPUT type="submit" value="Send"> <INPUT type="reset"> </P> </FORM>
Примечание. Эта спецификация содержит более развёрнутую информацию о формах в разделе вопросы отображения форм.
Пользователь взаимодействует с формой посредством элементов управления.
Имя элемента управления (ЭУ), "control name", задаётся атрибутом name. Областью видимости атрибута name ЭУ внутри формы является элемент FORM.
Каждый ЭУ имеет начальное и текущее значение типа "символьная строка". См. определение каждого ЭУ для спецификации начальных значений и возможные ограничения значений, принимаемых ЭУ. В целом, "начальное значение\initial value" может быть установлено атрибутом value ЭУ. Однако начальное значение ЭУ TEXTAREA задаётся его содержимым, а начальное значение ЭУ OBJECT в форме определяется реализацией данного объекта (т.е. находится вне пределов данной спецификации).
"Текущее значение\current value" ЭУ вначале устанавливается в первоначальное значение. После этого текущее значение ЭУ можно изменять, взаимодействуя с пользователем, и с помощью скриптов (сценариев).
Начальное значение ЭУ не
изменяется. Таким образом, при
очистке формы текущее значение каждого ЭУ
устанавливается в начальное значение.
Если ЭУ не имеет начального значения,
воздействие очистки формы на данный ЭУ не
определено.
При отправке формы на обработку, некоторые ЭУ образуют пары "имя/значение", которые затем пересылаются с формой. ЭУ, чьи пары имя/значение высланы, называются "действующие ЭУ".
HTML определяет следующие типы ЭУ:
Автор должен указать язык сценария кнопки push путём объявления языка скриптов по умолчанию (в элементе META).
Авторы создают кнопки, используя ЭУ BUTTON, или ЭУ INPUT. См. определение этих ЭУ .
Несколько переключателей в форме могут использовать одно имя ЭУ. Так, например, переключатели позволяют пользователям выбрать несколько значений для одного свойства. ЭУ INPUT используется для создания переключателей.
В определённый момент времени только одна radio-кнопка из набора может быть "включена". Если ни один из элементов <INPUT> набора radio-кнопок не установлен (`CHECKED'), тогда ПА обязан вначале включить первую из кнопок набора.
Поскольку поведение ПА различно, авторы должны убедиться, что в каждом наборе radio-кнопок одна "включена".
Элементы, используемые для создания ЭУ, обычно размещаются внутри элемента FORM, но могут также находиться и вне объявления элемента FORM, если используются для создания пользовательского интерфейса. Этот вопрос рассматривается в разделе внутренние события. Обратите внимание - ЭУ вне формы не могут быть "действующими ЭУ".
<!ELEMENT FORM - - (%block;|SCRIPT)+ -(FORM) -- интерактивная форма --> <!ATTLIST FORM %attrs; -- %coreattrs, %i18n, %events -- action %URI; #НЕОБХОДИМ -- обработчик на стороне сервера -- method (GET|POST) GET -- HTTP метод отправки формы-- enctype %ContentType; "application/x-www-form-urlencoded" accept %ContentTypes; #ПРЕДПОЛАГАЕТСЯ -- список типов MIME для загрузки файлов -- name CDATA #ПРЕДПОЛАГАЕТСЯ -- имя формы (для скриптов) -- onsubmit %Script; #ПРЕДПОЛАГАЕТСЯ -- событие: форма отправлена -- onreset %Script; #ПРЕДПОЛАГАЕТСЯ -- событие: форма очищена -- accept-charset %Charsets; #ПРЕДПОЛАГАЕТСЯ -- список поддерживаемых наборов символов -- >
Начальный тег: необходим, Конечный тег: необходим
Определения атрибутов
Атрибуты, определённые в другом месте
Элемент FORM действует как контейнер для ЭУ. Он определяет:
Форма может содержать текст и разметку (параграфы, списки и т.п.) в дополнение к ЭУ формы.
В следующем примере показана форма,
обрабатываемая программой "adduser" после
отправки.
Форма будет отправлена программе
методом "post".
<FORM action="http://somesite.com/prog/adduser" method="post"> ...содержимое формы... </FORM>
См. раздел отправка формы о том, как ПА должны готовить данные формы для сервера и как ПА должны обработать ожидаемый ответ.
Примечание. Обсуждение работы сервера, принимающего данные формы, находится за рамками данной спецификации.
<!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT | RESET | FILE | HIDDEN | IMAGE | BUTTON)" > <!-- имя атрибута требуется для всех, кроме submit и reset --> <!ELEMENT INPUT - O EMPTY -- ЭУ формы --> <!ATTLIST INPUT %attrs; -- %coreattrs, %i18n, %events -- type %InputType; TEXT -- тип ЭУ -- name CDATA #ПРЕДПОЛАГАЕТСЯ -- отправляется как часть формы -- value CDATA #ПРЕДПОЛАГАЕТСЯ -- для radio-кнопок и переключателей -- checked (checked) #ПРЕДПОЛАГАЕТСЯ -- для radio-кнопок и переключателей -- disabled (disabled) #ПРЕДПОЛАГАЕТСЯ -- недоступен в данном контексте -- readonly (readonly) #ПРЕДПОЛАГАЕТСЯ -- для text и passwd -- size CDATA #ПРЕДПОЛАГАЕТСЯ -- специфичен для каждого типа поля -- maxlength NUMBER #ПРЕДПОЛАГАЕТСЯ -- максимальное к-во символов для полей text -- src %URI; #ПРЕДПОЛАГАЕТСЯ -- для полей с изображениями -- alt CDATA #ПРЕДПОЛАГАЕТСЯ -- краткое описание -- usemap %URI; #ПРЕДПОЛАГАЕТСЯ -- использовать клиентские карты изображений -- ismap (ismap) #ПРЕДПОЛАГАЕТСЯ -- использовать серверные карты изображений -- tabindex NUMBER #ПРЕДПОЛАГАЕТСЯ -- позиция в порядке табуляции -- accesskey %Character; #ПРЕДПОЛАГАЕТСЯ -- символ быстрого доступа -- onfocus %Script; #ПРЕДПОЛАГАЕТСЯ -- элемент получил фокус -- onblur %Script; #ПРЕДПОЛАГАЕТСЯ -- элемент потерял фокус -- onselect %Script; #ПРЕДПОЛАГАЕТСЯ -- текст был выделен -- onchange %Script; #ПРЕДПОЛАГАЕТСЯ -- значение элемента было изменено -- accept %ContentTypes; #ПРЕДПОЛАГАЕТСЯ -- список типов MIME для загрузки файлов -- >
Начальный тег: необходим, Конечный тег: запрещён
Определения атрибутов
Атрибуты, определённые в другом месте
Тип ЭУ, определяемый элементом INPUT, зависит от значения атрибута type:
Примечание. Разработчики программного обеспечения должны иметь в виду, что этот механизм обеспечивает лишь некоторую защиту. Хотя пароль маскируется ПАгентом от случайного просмотра, он передаётся на сервер в виде обычного текста и может быть прочитан кем-нибудь, имеющим низкоуровневый доступ к сети.
Если для щелчка на кнопке image используется указательное устройство (мышь и т.п.), форма отправляется и координаты щелчка передаются серверу. Значение Х измеряется в пикселах от левого края изображения, а значение У - в пикселах от верхнего края изображения. Отправленные данные включают значения name.x=x-value и name.y=y-value, где "name" это значение атрибута name, а x-value и y-value это значения координат x и y соответственно.
Если сервер выполняет разные действия в зависимости от места нажатия на элементе, пользователи неграфических браузеров окажутся в затруднительном положении. По этим причинам авторы должны предусматривать дополнительные варианты:
Следующий фрагмент HTML определяет простую форму, которая даёт пользователю возможность ввести имя, фамилию, email адрес и пол. При активации кнопки submit, форма посылается программе, указанной в атрибуте action.
<FORM action="http://somesite.com/prog/adduser" method="post"> <P> First name: <INPUT type="text" name="firstname"><BR> Last name: <INPUT type="text" name="lastname"><BR> email: <INPUT type="text" name="email"><BR> <INPUT type="radio" name="sex" value="Male"> Male<BR> <INPUT type="radio" name="sex" value="Female"> Female<BR> <INPUT type="submit" value="Send"> <INPUT type="reset"> </P> </FORM>
Эта форма будет выглядеть примерно так:

В разделе элемента LABEL мы обсуждаем установку лэйблов, таких как "First name".
В этом примере, функция verify JavaScript включается при возникновении события "onclick":
<HEAD> <META http-equiv="Content-Script-Type" content="text/javascript"> </HEAD> <BODY> <FORM action="..." method="post"> <P> <INPUT type="button" value="Click Me" onclick="verify()"> </FORM> </BODY>
См. раздел внутренние события о сценариях и событиях.
В следующем примере показано, как содержимое определённого пользователем файла может пересылаться с формой. Пользователь запрашивается о его (или её) имени и списке имён файлов, содержимое которых должно быть отправлено с формой. При установке значения enctype в "multipart/form-data" содержимое каждого файла упаковывается для отправки отдельным разделом составного документа.
<FORM action="http://server.dom/cgi/handle" enctype="multipart/form-data" method="post"> <P> Ваше имя? <INPUT type="text" name="name_of_sender"> Какие файлы Вы отправляете? <INPUT type="file" name="name_of_files"> </P> </FORM>
<!ELEMENT BUTTON - - (%flow;)* -(A|%formctrl;|FORM|FIELDSET) -- кнопка push --> <!ATTLIST BUTTON %attrs; -- %coreattrs, %i18n, %events -- name CDATA #ПРЕДПОЛАГАЕТСЯ value CDATA #ПРЕДПОЛАГАЕТСЯ -- отсылается на сервер при отправке формы -- type (button|submit|reset) submit -- используется как кнопка формы -- disabled (disabled) #ПРЕДПОЛАГАЕТСЯ -- недоступен в этом контексте -- tabindex NUMBER #ПРЕДПОЛАГАЕТСЯ -- позиция при табуляции -- accesskey %Character; #ПРЕДПОЛАГАЕТСЯ -- символ быстрого доступа -- onfocus %Script; #ПРЕДПОЛАГАЕТСЯ -- элемент получил фокус -- onblur %Script; #ПРЕДПОЛАГАЕТСЯ -- элемент потерял фокус -- >
Начальный тег: необходим, Конечный тег: необходим
Определения атрибутов
Атрибуты, определённые в другом месте
Кнопки, созданные элементом BUTTON работают почти так же, как и кнопки, созданные элементом INPUT, но дают больше возможностей представления: элемент BUTTON может иметь содержимое. Например, элемент BUTTON, содержащий изображение, работает и может выглядеть как элемент INPUT, чей type установлен "image", но элемент BUTTON может иметь содержимое.
Визуальные ПА могу представлять кнопку BUTTON с рельефом и смещением вверх/вниз при нажатии, в то время как они могут рассматривать кнопки INPUT только как "плоские" изображения.
Этот пример расширяет предыдущий, но создаёт кнопки submit и reset элементом BUTTON вместо INPUT. Кнопки содержат изображения так же, как элемент IMG.
<FORM action="http://somesite.com/prog/adduser" method="post"> <P> First name: <INPUT type="text" name="firstname"><BR> Last name: <INPUT type="text" name="lastname"><BR> email: <INPUT type="text" name="email"><BR> <INPUT type="radio" name="sex" value="Male"> Male<BR> <INPUT type="radio" name="sex" value="Female"> Female<BR> <BUTTON name="submit" value="submit" type="submit"> Send<IMG src="/icons/wow.gif" alt="wow"></BUTTON> <BUTTON name="reset" type="reset"> Reset<IMG src="/icons/oops.gif" alt="oops"></BUTTON> </P> </FORM>
Напоминаем, что авторы должны указывать альтернативный текст для элемента IMG.
Недопустимо ассоциировать карту изображений с IMG, который является содержимым элемента BUTTON.
НЕВЕРНОЕ ИСПОЛЬЗОВАНИЕ:
Это
неверный HTML.
<BUTTON> <IMG src="foo.gif" usemap="..."> </BUTTON>
<!ELEMENT SELECT - - (OPTGROUP|OPTION)+ -- селектор опций --> <!ATTLIST SELECT %attrs; -- %coreattrs, %i18n, %events -- name CDATA #ПРЕДПОЛАГАЕТСЯ -- имя поля -- size NUMBER #ПРЕДПОЛАГАЕТСЯ -- видимые ряды -- multiple (multiple) #ПРЕДПОЛАГАЕТСЯ -- по умолчанию в одном выделении -- disabled (disabled) #ПРЕДПОЛАГАЕТСЯ -- недоступен в данном контексте -- tabindex NUMBER #ПРЕДПОЛАГАЕТСЯ -- позиция при табуляции -- onfocus %Script; #ПРЕДПОЛАГАЕТСЯ -- элемент получил фокус -- onblur %Script; #ПРЕДПОЛАГАЕТСЯ -- элемент потерял фокус -- onchange %Script; #ПРЕДПОЛАГАЕТСЯ -- значение элемента изменено -- >
Начальный тег: необходим, Конечный тег: необходим
Определения атрибутов элемента SELECT
Атрибуты, определённые в другом месте
Элемент SELECT создаёт меню. Каждая опция выбора представляется элементом OPTION. Элемент SELECT должен содержать не менее одного элемента OPTION.
Элемент OPTGROUP позволяет группировать опции логически. Это особенно удобно, когда пользователь должен выбрать из большого списка опций: группы связанных опций легче осмыслить и запомнить, чем один большой список опций. В HTML 4 все элементы OPTGROUP должны быть определены непосредственно в элементе SELECT (т.е. группы не могут быть вложенными).
Ноль или более опций могут быть предустановлены для пользователя. ПА должны определять, какая опция является предустановленной, следующим образом:
Первоначально выбранной является опция 1, если только отсутствует атрибут SELECTED или любой из элементов <OPTION>.
Поскольку поведение ПА различно, авторы должны удостовериться, что каждое меню включает предустановленную опцию (OPTION)по умолчанию.
<!ELEMENT OPTGROUP - - (OPTION)+ -- группа опций --> <!ATTLIST OPTGROUP %attrs; -- %coreattrs, %i18n, %events -- disabled (disabled) #ПРЕДПОЛАГАЕТСЯ -- недоступен в этом контексте -- label %Text; #НЕОБХОДИМ -- для использования в иерархическом меню -- >
Начальный тег: необходим, Конечный тег: необходим
Определение атрибута элемента OPTGROUP
Атрибуты, определённые в другом месте
Примечание. Разработчики должны помнить, что следующие версии HTML могут расширить механизм группировки, чтобы разрешить вложенные группы (т.е., элементы OPTGROUP могут быть вложенными). Это позволит авторам определять возможность более сложного выбора.
<!ELEMENT OPTION - O (#PCDATA) -- опции выбора --> <!ATTLIST OPTION %attrs; -- %coreattrs, %i18n, %events -- selected (selected) #ПРЕДПОЛАГАЕТСЯ disabled (disabled) #ПРЕДПОЛАГАЕТСЯ -- недоступен в данном контексте -- label %Text; #ПРЕДПОЛАГАЕТСЯ -- для использования в иерархических меню -- value CDATA #ПРЕДПОЛАГАЕТСЯ -- значения по умолчанию для содержимого элемента -- >
Начальный тег: необходим, Конечный тег: не обязателен
Определения атрибутов элемента OPTION
Атрибуты, определённые в другом месте
При рассмотрении выбора опции меню ПА должен использовать значение атрибута label элемента OPTION в качестве выбора. Если этот атрибут не установлен, ПА должен использовать содержимое элемента OPTION.
Атрибут label элемента OPTGROUP определяет лэйбл для группы выбора.
В следующем примере создаётся меню, позволяющее пользователю выбрать, какой из 7 программных компонентов устанавливать. Первый и второй компоненты предустановлены, но могут быть отключены пользователем. Остальные компоненты не предустановлены. Атрибут size устанавливает, что видны только 4 ряда меню, хотя пользователь может выбирать из 7 опций. Другие опции могут стать доступными путём прокрутки.
После SELECT идут кнопки submit и reset.
<FORM action="http://somesite.com/prog/component-select" method="post"> <P> <SELECT multiple size="4" name="component-select"> <OPTION selected value="Component_1_a">Component_1</OPTION> <OPTION selected value="Component_1_b">Component_2</OPTION> <OPTION>Component_3</OPTION> <OPTION>Component_4</OPTION> <OPTION>Component_5</OPTION> <OPTION>Component_6</OPTION> <OPTION>Component_7</OPTION> </SELECT> <INPUT type="submit" value="Send"><INPUT type="reset"> </P> </FORM>
Только выбранные опции будут действующими (используя имя ЭУ "component-select"). Если ни одна опция не выбрана, ЭУ является недействующим, и ни имя, ни какое-либо его значение не отсылаются серверу при отправке формы. Заметьте, что если атрибут value установлен, он определяет начальное значение ЭУ и является в то же время содержимым элемента.
В этом примере использован элемент OPTGROUP для группирования опций. Следующая разметка:
<FORM action="http://somesite.com/prog/someprog" method="post"> <P> <SELECT name="ComOS"> <OPTION selected label="none" value="none">None</OPTION> <OPTGROUP label="PortMaster 3"> <OPTION label="3.7.1" value="pm3_3.7.1">PortMaster 3 with ComOS 3.7.1</OPTION> <OPTION label="3.7" value="pm3_3.7">PortMaster 3 with ComOS 3.7</OPTION> <OPTION label="3.5" value="pm3_3.5">PortMaster 3 with ComOS 3.5</OPTION> </OPTGROUP> <OPTGROUP label="PortMaster 2"> <OPTION label="3.7" value="pm2_3.7">PortMaster 2 with ComOS 3.7</OPTION> <OPTION label="3.5" value="pm2_3.5">PortMaster 2 with ComOS 3.5</OPTION> </OPTGROUP> <OPTGROUP label="IRX"> <OPTION label="3.7R" value="IRX_3.7R">IRX with ComOS 3.7R</OPTION> <OPTION label="3.5R" value="IRX_3.5R">IRX with ComOS 3.5R</OPTION> </OPTGROUP> </SELECT> </FORM>
представляет такую группировку:
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.
<!ELEMENT TEXTAREA - - (#PCDATA) -- многострочное текстовое поле --> <!ATTLIST TEXTAREA %attrs; -- %coreattrs, %i18n, %events -- name CDATA #ПРЕДПОЛАГАЕТСЯ rows NUMBER #НЕОБХОДИМ cols NUMBER #НЕОБХОДИМ disabled (disabled) #ПРЕДПОЛАГАЕТСЯ -- недоступен в данном контексте -- readonly (readonly) #ПРЕДПОЛАГАЕТСЯ tabindex NUMBER #ПРЕДПОЛАГАЕТСЯ -- позиция при табуляции -- accesskey %Character; #ПРЕДПОЛАГАЕТСЯ -- символ быстрого доступа -- onfocus %Script; #ПРЕДПОЛАГАЕТСЯ -- элемент получил фокус -- onblur %Script; #ПРЕДПОЛАГАЕТСЯ -- элемент потерял фокус -- onselect %Script; #ПРЕДПОЛАГАЕТСЯ -- некоторый текст выделен -- onchange %Script; #ПРЕДПОЛАГАЕТСЯ -- значение элемента изменено -- >
Начальный тег: необходим, Конечный тег: необходим
Определения атрибутов
Атрибуты, определённые в другом месте
Элемент TEXTAREA создаёт многострочный ЭУ для ввода текста. ПА должны использовать содержимое этого элемента как начальное значение элемента и отображать этот текст как начальный.
В этом примере создаётся ЭУ TEXTAREA, в котором 20 рядов и 80 столбцов, содержащий 2 строки начального текста. За ЭУ TEXTAREA идут кнопки submit и reset.
<FORM action="http://somesite.com/prog/text-read" method="post"> <P> <TEXTAREA name="thetext" rows="20" cols="80"> Первая строка начального текста. Вторая строка начального текста. </TEXTAREA> <INPUT type="submit" value="Send"><INPUT type="reset"> </P> </FORM>
Установка атрибута readonly
позволяет отображать в TEXTAREA
неизменяемый текст.
Это отличается от использования
стандартного текста разметки в документе,
поскольку значение TEXTAREA
отсылается вместе с формой.
ISINDEX не рекомендуется. Этот элемент создаёт однострочное окно для ввода текста. Авторы должны использовать элемент INPUT для создания элементов для ввода текста.
См. формальное определение: Переходное ОТД/Transitional DTD.
Определение атрибута
Атрибуты, определённые в другом месте
Элемент ISINDEX создаёт однострочный ЭУ для ввода текста, позволяющий вводить любое количество символов. ПА должны использовать значение атрибута prompt как название промпта.
НЕ РЕКОМЕНДУЕТСЯ:
Следующее
объявление ISINDEX:
<ISINDEX prompt="Введите Ваш текст для поиска: ">
можно переписать для INPUT так:
<FORM action="..." method="post"> <P>Введите Ваш текст для поиска: <INPUT type="text"></P> </FORM>
Семантика ISINDEX. В настоящее время семантика элемента ISINDEX определяется хорошо, если только URI документа является HTTP URI. На практике строка ввода ограничивается набором символов Latin-1, так как отсутствует URI механизм определения другого набора символов.
Некоторые ЭУ автоматически содержат лэйблы, ассоциированные с ними (кнопки), а другие - нет (поля ввода текста, переключатели, radio-кнопки и меню).
Для ЭУ, имеющих встроенные лэйблы, ПА должны использовать значения атрибута value как строку лэйбла.
Элемент LABEL используется для определения лэйблов в ЭУ, не имеющих встроенных лэйблов.
<!ELEMENT LABEL - - (%inline;)* -(LABEL) -- текст лэйбла элемента формы --> <!ATTLIST LABEL %attrs; -- %coreattrs, %i18n, %events -- for IDREF #ПРЕДПОЛАГАЕТСЯ -- соответствует значению ID поля -- accesskey %Character; #ПРЕДПОЛАГАЕТСЯ -- символ быстрого доступа -- onfocus %Script; #ПРЕДПОЛАГАЕТСЯ -- элемент получил фокус -- onblur %Script; #ПРЕДПОЛАГАЕТСЯ -- элемент потерял фокус -- >
Начальный тег: необходим, Конечный тег: необходим
Определение атрибутов
Атрибуты, определённые в другом месте
Элемент LABEL может использоваться для присоединения информации к ЭУ. Каждый элемент LABEL ассоциирован только с одним ЭУ формы.
Атрибут for явно ассоциирует лэйбл с другим ЭУ: значение атрибута for должно быть тем же, что и атрибута id ассоциированного ЭУ. Более, чем один LABEL может быть ассоциирован с элементом путём создания множественных ссылок атрибута for.
В этом примере создаётся таблица, для выравнивания двух ЭУ text и ассоциированных с ними лэйблов. Каждый лэйбл ассоциируется только с одним ЭУ text:
<FORM action="..." method="post"> <TABLE> <TR> <TD><LABEL for="fname">First Name</LABEL> <TD><INPUT type="text" name="firstname" id="fname"> <TR> <TD><LABEL for="lname">Last Name</LABEL> <TD><INPUT type="text" name="lastname" id="lname"> </TABLE> </FORM>
Этот пример дополняет предыдущий включением элементов LABEL:
<FORM action="http://somesite.com/prog/adduser" method="post"> <P> <LABEL for="firstname">First name: </LABEL> <INPUT type="text" id="firstname"><BR> <LABEL for="lastname">Last name: </LABEL> <INPUT type="text" id="lastname"><BR> <LABEL for="email">email: </LABEL> <INPUT type="text" id="email"><BR> <INPUT type="radio" name="sex" value="Male"> Male<BR> <INPUT type="radio" name="sex" value="Female"> Female<BR> <INPUT type="submit" value="Send"> <INPUT type="reset"> </P> </FORM>
Чтобы ассоциировать лэйбл с другим ЭУ неявно, ЭУ должен находиться внутри содержимого элемента LABEL. В этом случае LABEL может содержать только один элемент управления. Лэйбл может находиться перед или после ассоциированного ЭУ.
В этом примере мы неявно ассоциируем два лэйбла с двумя ЭУ text:
<FORM action="..." method="post"> <P> <LABEL> First Name <INPUT type="text" name="firstname"> </LABEL> <LABEL> <INPUT type="text" name="lastname"> Last Name </LABEL> </P> </FORM>
Учтите. что эта техника не может использоваться, если для вывода используется таблица, и лэйбл находится в одной ячейке, а ассоциированный ЭУ - в другой ячейке.
Если LABEL получает фокус/focus, он передаёт фокус ассоциированному ЭУ. См. ниже раздел о клавишах быстрого доступа/access keys.
Лэйблы могут рассматриваться ПА различными способами (напр., визуально, речевым синтезатором и т.д.)
<!-- #PCDATA здесь решает проблему смешанного содержимого, по спецификации здесь допустимы только пробелы! --> <!ELEMENT FIELDSET - - (#PCDATA,LEGEND,(%flow;)*) -- группа ЭУ --> <!ATTLIST FIELDSET %attrs; -- %coreattrs, %i18n, %events -- > <!ELEMENT LEGEND - - (%inline;)* -- "легенда" набора полей --> <!ATTLIST LEGEND %attrs; -- %coreattrs, %i18n, %events -- accesskey %Character; #ПРЕДПОЛАГАЕТСЯ -- символ быстрого доступа -- >
Начальный тег: необходим, Конечный тег: необходим
Определение атрибута элемента LEGEND
Атрибуты, определённые в другом месте