Александр Чиртик - HTML: Популярный самоучитель
Рис. 9.2. Стандартные элементы управления
Для обозначения всех этих элементов управления используется один HTML‑элемент – INPUT. Элемент задается одиночным тегом <INPUT> и имеет следующие атрибуты:
• type – принимает строку, задающую тип элемента управления (по умолчанию используется строка text, и создается, соответственно, поле для ввода текста), возможные значения и специфика работы соответствующих элементов управления рассмотрены далее;
• name – используется для задания имени элементу управления (строка, которая, помимо идентификации элемента управления, добавляется в данные, отсылаемые серверу);
• value – начальное значение для полей ввода текста и полей для указания имен файлов, также используется как надпись таких элементов управления, как кнопки; необязательно для всех элементов управления, кроме флажков и переключателей;
• checked – булев атрибут, если он установлен, то флажок или переключатель считается (и отображается браузером) установленным (см. рис. 9.1);
• disabled – булев атрибут, установка которого не позволяет пользователю работать с элементом управления;
• readonly – булев атрибут, позволяет запретить изменение состояния элемента управления (работает только для текстовых полей и поля выбора файла, так что для остальных элементов управления лучше использовать атрибут disabled, однако при этом данные деактивированных элементов управления не отправляются серверу);
• size – задает размер элемента управления (единицы измерения и действие специфичны для разных элементов управления);
• maxlenth – задает максимальную длину текста, который может быть введен в текстовые поля (положительное численное значение);
• src – для элемента управления image задает расположение используемого изображения;
• title – описание элемента управления (может отображаться браузерами как всплывающая подсказка);
• align – задает горизонтальное выравнивание элемента управления, работает так же, как и для любого другого HTML‑элемента, поддерживающего этот атрибут;
• tabindex – номер элемента управления при навигации при помощи табуляции;
• accesskey – горячая клавиша для элемента управления (для перехода к элементу управления нужно нажать Alt и заданную клавишу).
После того как дано начальное описание элемента INPUT, можно проанализировать текст HTML‑документа с формой, показанной на рис. 9.2 (пример 9.1).
Пример 9.1. Пример использования HTML-элемента INPUT<TITLE>Типы элементов управления INPUT</TITLE>
<FORM action="..." method="post" enctype = "multipart/form-data">
Текстовое поле <INPUT type="text" name="type_text"><BR>
Поле для ввода пароля: <INPUT type="password" name="type_password"
alt = "asfdsvdf"><BR>
Флажок: <INPUT type="checkbox" name="type_check" value = "chk1"
checked><BR>
Два переключателя: <INPUT type="radio" name="type_radio" value="1"
checked>
и <INPUT type="radio" name="type_radio" value="2"><BR>
Поле с именами файлов: <INPUT type = "file" name = "type_file"><BR>
<INPUT type = "submit" value = "Отправка данных"><BR>
Щелчок на этом изображении также приведет к отправке данных:
<INPUT type = "image" src = "submit.gif""><BR>
<INPUT type = "reset" value = "Сброс значений полей"><BR>
<INPUT type = "button" value = "Пользовательская кнопка">
</FORM>
В приведенном примере использованы все возможные значения атрибута type, кроме значения hidden. Поскольку использование каждого из значений атрибута type налагает различные ограничения на использование других атрибутов HTML‑элемента INPUT, то целесообразно рассмотреть влияние каждого значения подробно. Для краткости особенности использования каждого значения сведены в таблицу (табл. 9.1).
Таблица 9.1. Значения атрибута typeАтрибут size упоминался только для элементов управления, имеющих в своем составе текстовые поля. Это потому, что хотя для остальных элементов управления этот атрибут и должен принимать значения в пикселах и задавать соответствующую ширину этих элементов управления, но трудно найти браузер, который бы это поддерживал.
Многострочное текстовое поле
Теперь рассмотрим, как вставить в форму более продвинутый элемент управления для редактирования текста – многострочное текстовое поле. Этот элемент управления обозначается HTML‑элементом TEXTAREA и задается парными тегами <TEXTAREA> и </TEXTAREA>.
Главным отличием этого элемента управления от обычного текстового поля, кроме возможности ввода текста, состоящего из большого количества строк, является то, что начальное значение не задается атрибутом value, а записывается между тегами <TEXTAREA> и </TEXTAREA>.
При отображении в текстовом поле форматирование текста сохраняется точно так же, как при использовании HTML‑элемента PRE.
В целом для настройки элемента TEXTAREA используются те же атрибуты, что и для настройки элемента INPUT со значением атрибута type, равным text или password. Однако размер элемента управления задается не атрибутом size, а с помощью следующих атрибутов:
• rows – задает количество строк, которые отображаются без необходимости вертикальной прокрутки;
• cols – задает максимальное количество символов в строке текстового поля, отображаемое без переноса.
Многострочное текстовое поле выглядит так, как показано на рис. 9.3 (в браузере Internet Explorer).
Рис. 9.3. Многострочное текстовое поле
Для создания приведенного на рисунке текстового поля использовался следующий фрагмент кода (пример 9.2).
Пример 9.2. Создание многострочного текстового поля<TEXTAREA name = «txtText» rows = 10 cols = 40>
Первый перевод строки не учитывается
Все последующие переводы строки учитываются
Учитываются также отступы от начала строки
Можно использовать зарезервированные символы HTML, типа <>& и прочие
</TEXTAREA>
Снова кнопки
В HTML предусмотрен отдельный элемент BUTTON на случай, если разработчику формы не хватит возможностей обычных командных кнопок. При помощи этого HTML‑элемента создаются кнопки, на которые можно поместить практически все, за исключением разве что других форм, фреймов и некоторых других особых HTML‑элементов. Такая кнопка выглядит в браузере Internet Explorer так, как показано на рис. 9.4.
Рис. 9.4. Кнопка с расширенными возможностями
Новый вид кнопок используется аналогично кнопкам, создаваемым HTML‑элементом INPUT со значением атрибута type, равным button. Новые кнопки отличаются от своего аналога, прежде всего, созданием: для задания HTML‑элемента BUTTON используются парные теги <BUTTON> и </BUTTON>, между которыми помещается форматированный текст. Так, за создание кнопки, показанной на рис. 9.4, отвечает следующий HTML‑код (пример 9.3).
Пример 9.3. Создание кнопки BUTTON<BUTTON name = «cmbSomeButtton» type = «button»>
<BR>
На этом виде кнопок может быть помещен любой<BR>
HTML-текст c использованием <STRONG>разметки</STRONG><BR>
Даже таблицы, не говоря уже об изображениях:
<TABLE border = 1>
<CAPTION>Таблица</CAPTION>
<TR><TD>1<TD>2
<TR><TD>3<TD>4
</TABLE>
<BR>
</BUTTON>
Внимание!
В тексте между тегами <BUTTON> и </BUTTON> правильного HTML-документа не должны задаваться другие HTML-элементы, обладающие возможностями гиперссылок. В лучшем случае, если браузер это предусматривает, то такие HTML-элементы будут просто игнорироваться. В худшем же случае, если браузер не переносит HTML-документ с ошибками, то его поведение вообще сложно предугадать.
Специфичным в настройке кнопки, создаваемой HTML‑элементом BUTTON, является использование атрибута type для задания типа кнопки: submit (отправка формы при нажатии), reset (сброс значений элементов управления формы при нажатии) или button (пользовательская кнопка, связываемая со сценарием). Кроме того, доступны атрибуты name, title, disabled, tabindex и accesskey, использование которых полностью аналогично использованию атрибутов элемента INPUT.
Следует особо рассмотреть атрибут value. Его использование только для подписи кнопки становится бессмысленным. Однако в спецификации HTML 4.01 говорится, что предполагается отправка значения этого атрибута вместе с прочими данными формы (видимо при нажатии соответствующей кнопки, имеющей значение атрибута type, равное submit, тогда задание значения атрибута value является весьма полезным для определения на сервере того, какую именно кнопку нажал пользователь).
Меню
При создании форм можно использовать еще один достаточно удобный элемент управления, позволяющий выбрать одну или несколько альтернатив из списка – меню (или список параметров). Этот элемент управления добавляется на форму использованием трех HTML‑элементов: SELECT, OPTGROUP и OPTION. Хотя обязательно использовать только первый и последний из них.
Начнем с HTML‑элемента SELECT – он является контейнером пунктов меню, задается при помощи парных тегов <SELECT> и </SELECT> и поддерживает следующие атрибуты:
• name – имя меню, которое также используется как название параметра при отправке формы;