logo
123

Элементы форм

Все элементы форм создаются тэгами, имеющими начало: <input type="...", где значения атрибута type и определяют тип элемента. Рассмотрим возможные значения этого атрибута.

Текстовое поле (text field): (Мы только что видели их в нашем примере) Текстовое поле определяет код:

<input type="Text" name="имя поля" value="начальный текст" align="LEFT" size="число символов" maxlength="максимальное число символов">

Здесь

name - имя поля (впоследствии мы узнаем, как к элементам форм можно обращаться просто по имени);

value - то, что будет записано в текстовое поле "по умолчанию", как только документ появится в окне браузера;

align - этот атрибут "отвечает" за расположение текстового поля; он не является специфическим для элементов форм и (как и в других тэгах) может принимать значения: left, right, center;

size - длина поля в символах;

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

Например: код: &ltinput name="fio" value="Горбунков Семен Семенович" align="LEFT" size="28" maxlength="35"> результат:

Значением текстового поля должен быть только текст. Если, к примеру, поместить в него html-код, он будет отображаться как текст (а не так, как он выглядел бы в окне браузера). Но вот пример размещения в текстовом поле бегущей строки, выполненный Сергеем Бурылиным. Как ему это удалось - попробуйте разобраться сами.

Текстовая область (text area): Текстовые области удобно использовать для ввода большого количества текстовой информации Код текстовой области выглядит следующим образом:

<textarea name="имя" cols="число столбцов" rows="число строк" wrap="способ переноса строк"> ТЕКСТ, РАЗМЕЩЕННЫЙ В ТЕКСТОВОЙ ОБЛАСТИ </textarea>

Здесь атрибут "wrap" указывает на способ разрыва строки: если присвоить ему значение off, вводимый текст будет "уходить" за пределы области, в противном случае (on, soft или даже просто wrap без присвоения) текст автоматически переносится на новую строку.

Например: код: &ltTEXTAREA name=bio cols=30 rows=6 wrap> КРАТКАЯ АВТОБИОГРАФИЯ </TEXTAREA> результат:

Список: Списки позволяют сделать единственный или множественный выбор из набора предлагаемых опций (options).

Например:

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

Список с множественным выбором: Сделайте заказ продуктов: Показаны лишь 4 из 8-ми опций, первая опция выделена.

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

&ltselect name="имя списка" size="число видимых опций" multiple> &ltoption value="значение" selected>текст &ltoption value="значение">текст ...... и так далее...... &ltoption value="значение">текст &ltoption value="значение">текст </select>

Коды списков, приведенных нами в качестве примеров, имеют вид:

&ltselect name="week" size="7"> &ltoption value="1">Понедельник</option> &ltoption value="2">Вторник</option> &ltoption value="3">Среда</option> &ltoption value="4">Четверг</option> &ltoption value="5">Пятница</option> &ltoption value="6">Суббота</option> &ltoption value="7">Воскресенье</option> </select> Список с единственным выбором, показаны все имющиеся опции, ни одна не выделена.

&ltselect name="food" size="4" multiple> &ltoption value="1" selected>Пицца</option> &ltoption value="2">Хот-дог</option> &ltoption value="3">Шашлык</option> &ltoption value="4">Мороженое</option> &ltoption value="5">Шампанское</option> &ltoption value="6">Ананас</option> &ltoption value="7">Шоколад</option> &ltoption value="8">Кофе</option> </select> Список с множественным выбором, показаны лишь 4 из 8-ми опций, первая опция выделена.

"Флажок" (Checkbox) "Единичный" флажок создается с помощью кода:

<input type="Checkbox" name="имя флажка" value="значение" checked> текст, который обычно помещается рядом с флажком

Атрибут checked указывает на то, что "флажок" по умолчанию будет отмеченным. Часто используется сразу несколько "флажков", например:

Укажите Ваши навыки: &ltinput type="checkbox" name="skill" value="1" checked>HTML &ltinput type="checkbox" name="skill" value="2">JavaScript &ltinput type="checkbox" name="skill" value="3">ASP &ltinput type="checkbox" name="skill" value="4">Perl &ltinput type="checkbox" name="skill" value="5">PHP &ltinput type="checkbox" name="skill" value="6">XML &ltinput type="checkbox" name="skill" value="7">FLASH

Укажите Ваши навыки: HTML JavaScript ASP Perl PHP XML FLASH

"Радиокнопка" (Radiobutton) "Единичная" радиокнопка создается с помощью кода:

<input type="radio" name="имя радиокнопки" value="значение" checked> текст, который обычно помещается рядом с радиокнопкой

Атрибут checked указывает на то, что радиокнопка по умолчанию будет отмеченной. Часто используется сразу несколько радиокнопок, например:

Укажите Ваши навыки: &ltinput type="radio" name="skill" value="1" checked>HTML &ltinput type="radio" name="skill" value="2">JavaScript &ltinput type="radio" name="skill" value="3">ASP &ltinput type="radio" name="skill" value="4">Perl &ltinput type="radio" name="skill" value="5">PHP &ltinput type="radio" name="skill" value="6">XML &ltinput type="radio" name="skill" value="7">FLASH

Укажите Ваши навыки: HTML JavaScript ASP Perl PHP XML FLASH

Здесь все радиокнопки имеют одно имя - skill. Это обеспечивает единственность выбора. Если присвоить радиокнопкам разные имена, будет возможен множественный выбор, как и в случае использования checkbox'ов.

Кнопка (button): Как мы уже говорили, каждая форма должна иметь кнопку, нажатие на которую обеспечивает отправку данных на сервер. Такая кнопка создается с помощью кода:

<input type="submit" name="имя кнопки" value="то, что на этой кнопке написано">

Например:

&ltinput type="submit" name="subm" value="Отправить данные">

Результат:

При нажатии кнопки submit данные передаются на сервер по адресу указанному в качестве значения атрибута action. Чтобы предусмотреть возможность сброса всех введенных пользователем данных (и восстановления данных, указанных по умолчанию), используется кнопка reset. Код ее выглядит следующим образом:

<input type="reset" name="имя кнопки" value="то, что на этой кнопке написано">

Например:

Начало формы

Конец формы

Наряду с кнопками submit и reset используются и "простые" кнопки, с которыми обычно связывается то или иное действие. "Простая кнопка" создается с помощью кода:

<input type="button" name="имя кнопки" value="то, что на этой кнопке написано" onclick="действие, связанное с кнопкой">

Обратите внимание на атрибут onclick. Он представляет собой обработчик события - нажатия на кнопку. Для обработки этого события (и множества других событий) используются клиентские сценарии, написанные на языке JavaScript или VBScript. (Язык JavaScript мы вскоре будем изучать.) Как правило, эти сценарии оформляются в виде функций, вызов которых является значением обработчика события onclick.

Например:

&ltinput type="button" value="Показать сегодняшнее число" onclick="alert(Date());">

Результат:

Забегая вперед, скажем, что здесь вызывается встроенный JavaScript'овский метод alert(), который создает системное окно для размещения в нем той или иной информации (значения его аргумента). В нашем случае аргументом метода alert() является встроенный JavaScript'овский объект Date(), содержащий информацию о текущей дате и времени. Об этом объекте мы впоследствии поговорим более подробно.

Кнопки могут иметь и более "экзотический" вид. Так, на них можно разместить не только текст, но и рисунок, в том числе и анимированный, и вообще, любой фрагмент HTML-кода. Вот общий вид кода "нестандартных" кнопок:

<button name="имя кнопки onclick="действие, связанное с кнопкой">HTML-код фрагмента, размещаемого на кнопке"></button>

Вот несколько образчиков:

&ltbutton style="width:124" onclick="alert('Это кнопка с картинкой');">&ltimg src="pictures/pencil.gif" width=118></button>

Здесь рисунок уменьшен в размере (за счет атрибутов width и height тэга img) и помещен в бегущую строку, находящуюся в контейнере &ltbutton ...>...</button>

Кнопку с размещенной на ней картинкой можно создать и так:

<input type="image" src="адрес рисунка" onclick="действие, связанное с кнопкой">

Однако в этом случае она мало напоминает кнопку. Сравните, например:

&ltbutton style="width:124" onclick="alert('Это кнопка с картинкой');">&ltimg src="pictures/pencil.gif" width=118></button>

&ltinput type="image" src="pictures/pencil.gif" onclick="alert('Это тоже кнопка с картинкой');">

Поле для ввода пароля (password): Поле для ввода пароля отличается от обычного текстового поля тем, что вводимое в него значение отображается с помощью звездочек. Синтаксис такого поля имеет вид:

&ltinput type="password" value="значение по умолчанию" size="длина поля (в символах)" maxlength="максимально допустимое число вводимых символов">

Например:

Код: &ltinput type="password" value="123456" size="6" maxlength="8">

Результат:

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

&ltinput type="hidden" value="значение по умолчанию">

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

Прикрепление файлов: Использование форм позволяет пользователю прикрепить файл и отправить его на сервер вместе с содержимым текстовых полей и других элементов формы. Например, многие сайты, где предусмотрена регистрация пользователей (скажем, агенства по трудоустройству) предусматривают отсылку фото, текстовых файлов с резюме, архивных файлов с текстами статей и пр. Для поиска файла на компьютере клиента (или в сетевом окружении, если клиентский компьютер находится в локальной сети) служит элемент:

&ltinput type="file" name="имя элемента" size="длина адресного поля в символах" accept="допустимый тип файла">

Например:

Код: &ltinput type="file" size="50">

Результат: Здесь допустимым является файл любого типа.

В следующем примере мы ограничиваем выбор прикрепляемого файла форматами: txt, html, avi (видео), bmp (графика)

&ltinput type="file" size="50" accept="text/plain,text/html,video/x-msvideo,image/x-portablebitmap">

ВАЖНО! Форма, содержащая поле типа FILE (для прикрепления файлов), должна иметь атрибут enctype="multipart/form-data". "Ответственным" за сохранение файла на сервере является, конечно же, серверный сценарий. Он будет использовать атрибут name как временное имя файла. Итак, мы рассмотрели все элементы форм и знаем принцип связи документа, содержащего форму, с серверным сценарием, "принимающим эстафету" от него (его адрес указывается в качестве значения атрибута action). Однако атрибут action является не единственным атрибутом формы. Забегая вперед, назовем еще два важных атрибута.