HTML формы

19.10.2022 14:11

    Формы дают возможность пользователям вводить информацию. Вам наверно, не раз встречались всевозможные тесты, опросы, голосования. Для того, чтобы все это сделать на своих web-страницах и нужны формы.

    Здесь следует заметить, что html-формы сами по себе только позволяют вводить информацию, а вот обрабатывать ее HTML не умеет (это все-таки язык разметки, а не программирования). Для обработки информации используются такие языки, как javascript, php и другие.

    Но всему свое время, пока мы научимся добавлять html-формы на свои страницы, а обрабатывать информацию из них будем учиться в других уроках, посвященных, например, javascript.

    Итак, в html форма задается тегами <form></form>. Все остальные элементы формы располагаются между этими тегами.

У тега <form> есть несколько параметров:

 

name - имя формы. Необходимо, если на странице несколько форм

action - определяет URL-адрес, по которому будет отправлена информация введеная пользователем

method - определяет способ отправки информации

target - указывает имя окна, в котором будут отображаться результаты обработки отправленной формы

 

    На данном этапе можете не очень вникать в эти параметры, их назначение станет очевидным при изучении языков обработки данных. А пока запомните, что все элементы формы располагаются между тегами <form></form>:

 

   <form name="forma1">

    </form>

   

Текстовое поле

 

    Простое однострочное текстовое поле, в которое можно вводить и редактировать текст. Задается тегом <input>

 

   <form name="forma1">

     <input type="text" name="text1" size="20"

            maxlength="50" value="Введите текст">

   </form>

        

Результат:

Параметры:

 

name - имя элемента,

type - тип элемента (в данном случае - text),

size - размер текстового поля в символах, которые одновременно будут видны, при вводе большего количества символов, они будут прокручиваться,

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

value - текст, который будет отображаться (его можно стереть), при отсутствии этого параметра поле будет пустым.

 

Возможны еще два параметра:

 

disabled - блокирует поле от любых изменений,

readonly - делает поле доступным только для чтения.

 

Пример:

 

   <form name="forma1">

    <input type="text" name="text1" size="20"

            maxlength="50" value="неактивное поле" disabled>

    <input type="text" name="text1" size="20"

            maxlength="50" value="только для чтения" readonly>

     </form>

        

Результат:

 

Текстовое поле для ввода пароля

 

    Это такое же текстовое поле, как и предыдущий элемент. Разница только в том, что вводимый текст не отображается, вместо него появляются специальные символы, например звездочки. Чаще всего используется при вводе паролей. Все параметры такие же, как у простого текстового поля, кроме параметра type="password".

 

Пример:

 

   <form name="forma1">

    Введите пароль:<br>

    <input type="password" name="text1" size="20"

            maxlength="50">

   </form>

 

Результат:

    Напишите код и попробуйте ввести что-нибудь в этом поле.

 

Флажки

 

    Вы, конечно, встречали подобный элемент:


 

    Он задается все тем же тегом <input>, причем один тег задает один флажок. Нужно четыре флажка, придется четыре раза писать input.

 

Пример:

 

<form name="forma1">

  Какими языками вы владеете:<br>

  <input type="checkbox" name="lan1" value="english"

                                  checked>английский

  <input type="checkbox" name="lan2" value="german">

                                            немецкий

  <input type="checkbox" name="lan3" value="spanish">

                                           испанский

  <input type="checkbox" name="lan4" value="french">

                                         французский

</form>

 

Рассмотрим его параметры:

 

type - тип элемента (в данном случае - checkbox),

name - имя элемента, указывает программе обработчику формы, какой пункт выбрал пользователь,

value - значение элемента, указывает программе обработчику формы значение пункта, который выбрал пользователь. В нашем примере выбран пункт английский, следовательно, программа-обработчик получит: lan1="english",

checked - им обычно помечают наиболее вероятные для выбора пункты, пользователь щелчком мыши может выбрать другие пункты.

 

Переключатели

 

    В отличии от флажков, можно выбрать только один пункт. В связи с этим значения параметра name должны быть одинаковы для всех элементов группы. Параметр type="radio", все остальные такие же, как у флажков.

 

Пример:

 

<form name="forma1">

  Укажите ваш пол:<br>

  <input type="radio" name="sex" value="man"

                                  checked>мужской

  <input type="radio" name="sex" value="woman">

                                          женский

</form>

        

Результат:

 

Кнопки

 

    Существует четыре вида кнопок:

 

submit - кнопка отправки содержимого формы web-серверу. Ее параметры:

  • type="submit" - тип кнопки,
  • name - имя кнопки,
  • value - надпись на кнопке.

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

  • type="image" - тип графической кнопки,
  • name - имя кнопки,
  • src - адрес картинки для кнопки.

reset - кнопка, позволяющая восстановить все значения по умолчанию в форме. Ее параметры:

  • type="reset" - тип кнопки очищения,
  • name - имя кнопки,
  • value - надпись на кнопке.

button - произвольная кнопка, ее действия назначаются вами, т.е. сама она делать ничего не умеет. Ее параметры:

  • type="button" - тип произвольной кнопки,
  • name - имя кнопки,
  • value - надпись на кнопке.
  • onclick - указывает, что делать при щелчке по кнопке. Вообще, у этого типа кнопок есть и другие события (например, двойной щелчок), но здесь мы не будем их рассматривать.

 

    Если на форме несколько кнопок, то они должны иметь разные названия.

 

Пример кода:

 

<form name="forma1">

  <input type="submit" name="submit" value="Отправить">

  <input type="image" name="but_img" src="but.gif">

  <input type="reset" name="reset" value="Очистить">

  <input type="button" name="button" value="Отправить">

</form>

        

Результат:

 

Скачать изображение кнопки.

 

    Кнопки можно задавать и по другому, при помощи тегов <button> </button>. Возможности у таких кнопок несколько шире, они могут иметь содержимое в виде текста или картинки. Этот тег имеет следующие параметры:

 

type - тип кнопки, может принимать значения:

  • reset - кнопка очистки формы,
  • submit - кнопка отправки данных,
  • button - кнопка произвольного действия.

name - имя кнопки,

value - надпись на кнопке.

 

Пример кода:

 

<form name="forma1">

  <button name="submit" type="submit">

   <img src="mail.gif" align="absmiddle">

   <font size="4"> Отправить </font>

  </button>

</form>

        

Результат:

Скачать изображение почты.

 

Поле для файлов

 

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

 

Пример:

 

<form name="forma1">

  <input type="file" name="load" size="50">

</form>

        

Результат:

 

Многострочное текстовое поле

 

    Для объемных текстов, например для почтовых сообщений, удобно использовать именно этот элемент. Он создается тегами <textarea> </textarea> и имеет следующие параметры:

 

name - имя поля,

cols - ширина поля в символах,

rows - количество строк текста, видимых на экране,

wrap - способ переноса слов:

  • off - переноса не происходит,
  • virtual - перенос отображается, но на сервер поступает неделимая строка,
  • physical - перенос и на экране и при поступлении на сервер.

disabled - неактивное поле,

readonly - разрешено только чтение.

 

Пример:

 

<form name="forma1">

  <textarea cols="20" rows="3" wrap="off"></textarea><br>

  <textarea cols="35" rows="5" wrap="virtual"></textarea><br>

  <textarea cols="50" rows="7" wrap="physical"></textarea>

</form>

        

Результат:

    Напишите код и попробуйте ввести текст. Посмотрите на разницу в значениях параметра wrap.

 

Раскрывающиеся списки

 

    Списки бывают с возможностью выбора одного элемента и с множественным выбором. Задются и те, и другие с помощью тегов <select> </select>, внутри которых располагаются элементы значений, заданных тегом <option>. Рассмотрим параметры этих тегов:

 

<select>:

  • name - имя списка. Каждый выбранный элемент списка при передаче на сервер будет иметь вид: name.value, где значение (value) берется из тега option.
  • size - определяет количество видимых элементов в списке: 1 - простой раскрывающийся список, больше 1 - список с полосой прокрутки.
  • multiple - разрешает выбор нескольких элементов списка.

 

<option>:

  • selected - им помечают наиболее вероятный для выбора элемент списка, если список со множественным выбором, то можно пометить несколько пунктов.
  • value - значение, которое будет отправлено серверу, если пункт выбран.

 

Пример:

 

<form name="forma1">

  Какой язык вы хотите изучать:

  <select name="language" size="1">

  <option selected value="html">html

  <option value="php">php

  <option value="java">java

  </select><br><br>

  Какое время вы готовы на это потратить:<br>

  <select name="time" size="3">

  <option selected value="1">1 месяц

  <option value="2">2 месяца

  <option value="3">3 месяца

  </select><br><br>

  Какие дни недели для занятий вас устроят:<br>

  (выбирайте с нажатой клавишей ctrl)<br>

  <select name="day" size="7" multiple>

  <option selected value="mon">понедельник

  <option value="tue">вторник

  <option value="wen">среда

  <option selected value="thu">четверг

  <option value="fri">пятница

  <option value="sat">суббота

  <option value="san">воскресенье

  </select>

</form>

        

Результат:

    Существуют еще теги <optgroup> </optgroup>, позволяющие группировать элементы списка по каким-либо признакам. Например, мы хотим задать каталог сайтов в виде списка, тогда удобнее разбить его на группы по интересам:


    Для этого нам и нужны теги <optgroup> </optgroup> с одним параметром label, который и задает название группе элементов.

 

Пример кода:

 

<form name="forma1">

  Каталог сайтов:<br>

  <select name="catalog" size="9">

   <optgroup label="Компьютеры">

    <option value="1">интернет</option>

    <option value="2">мобильники</option>

    <option value="3">hardware</option>

   </optgroup>

   <optgroup label="Работа">

    <option value="4">вакансии</option>

    <option value="5">трудоустройство</option>

    <option value="6">резюме</option>

   </optgroup>

   <optgroup label="Дом">

    <option value="7">здоровье</option>

    <option value="8">красота</option>

    <option value="9">дети</option>

   </optgroup>

  </select>

</form>

 

    Обратите внимание, в данном случае необходимо указывать закрывающие теги </option>.

 

Надписи

 

    Все элементы формы можно связать с их надписями при помощи элемента <label> и его параметра for, значением которого является имя элемента, с которым связываем надпись. Например:

 

<form name="forma1">

  <label for="load">Выбирайте файл: </label>

  <input type="file" name="load" size="30">

</form>

        

Результат:

    Стоит ли его использовать решать вам. Мне кажется, что без него код короче, а результат тот же.

 

Обобщающий пример

 

<html>

   <head>

        <title>Заголовок документа</title>

   </head>

   <body>

<form name="forma1">

 <table  border="0" cellspacing="5" cellpadding="5">

   <caption>Форма регистрации</caption>

   <tr>

    <td align="right" valign="top">Имя</td>

    <td><input type="text" name="name" size="25"></td>

   </tr>

   <tr>

    <td align="right" valign="top">e-mail</td>

    <td><input type="text" name="e-mail" size="25"></td>

   </tr>

   <tr>

    <td align="right" valign="top" >Пароль</td>

    <td>

     <input type="password" name="password" size="25">

    </td>

   </tr>

   <tr>

    <td align="right" valign="top" >Повтор пароля</td>

    <td>

     <input type="password" name="password2" size="25">

    </td>

   </tr>

   <tr>

    <td align="right" valign="top" >Пол</td>

    <td>

      <input type="radio" name="sex" value="man" checked>

      мужской

      <input type="radio" name="sex" value="woman">

      женский

    </td>

   </tr>

   <tr>

    <td align="right" valign="top">Увлечения</td>

    <td><select name="hobby" size="7" multiple>

                <option selected value="1">компьютеры

                <option value="2">спорт

                <option value="3">игры

                <option value="4">животные

                <option value="5">автомобили

                <option value="6">клубы

                <option value="7">музыка

        </select>

    </td>

   </tr>

   <tr>

    <td align="right" valign="top">Ваши пожелания</td>

    <td>

     <textarea cols="30" rows="3" wrap="physical">

     </textarea>

    </td>

   </tr>

   <tr>

    <td align="right" colspan="2">

     <input type="submit" name="submit" value="Отправить">

     <input type="reset" name="reset" value="Очистить">

    </td>

   </tr>

 </table>

</form>

   </body>

</html>

     

Результат:

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