Введение
В этом практическом занятии (лабораторной работе) студенты научатся создавать комплексные элементы HTML-форм с использованием различных типов полей ввода. Практическое занятие предоставляет структурированный подход к пониманию атрибутов тега формы, реализации различных элементов ввода и изучению техник дизайна форм. Участники получат практический опыт работы с текстовыми полями ввода, переключателями (радио-кнопками), флажками (чекбоксами), загрузкой файлов и кнопками отправки, развивая важные навыки веб-разработки для создания интерактивных и удобных для пользователя веб-форм.
Практическое занятие охватывает ключевые концепции, такие как настройка тега формы, варианты типов ввода и практические стратегии реализации. Путем выполнения пошаговых упражнений учащиеся поймут, как структурировать формы, определять атрибуты ввода и создавать динамические элементы взаимодействия с пользователем, которые являются важными для сбора и обработки данных пользователей в веб-приложениях.
Понимание тега формы и его базовых атрибутов
На этом этапе вы узнаете о HTML-тегах форм и их базовых атрибутах. Формы являются важными для сбора данных от пользователей на веб-страницах, позволяя взаимодействовать между пользователями и веб-сайтами.
Начнем с создания базовой HTML-формы в WebIDE. Откройте новый файл в директории ~/project и назовите его form_basics.html.
touch ~/project/form_basics.html
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>HTML Form Basics</title>
</head>
<body>
<form action="/submit" method="post">
<!-- Form elements will be added here -->
</form>
</body>
</html>
Тег <form> имеет два ключевых атрибута:
action: Определяет, куда будут отправлены данные формы при отправкеmethod: Определяет, как данные будут отправлены (обычно "get" или "post")
Разберем атрибуты формы:
action="/submit": Обычно это серверный эндпоинт (конечная точка), который обрабатывает данные формыmethod="post": Отправляет данные формы в теле запроса, более безопасно для конфиденциальной информации
Пример вывода базовой структуры формы:
<form action="/submit" method="post">
<!-- Form will look like this when rendered -->
</form>
Общие атрибуты формы включают:
name: Идентифицирует формуid: Уникальный идентификатор формыtarget: Определяет, где отображать ответenctype: Определяет, как должны быть закодированы данные формы
Если вы отобразите форму в браузере, она еще не будет отображать никакого видимого содержимого. Структура формы является основой для добавления интерактивных элементов, таких как текстовые поля ввода, переключатели и другие.
Реализация текстовых элементов ввода
На этом этапе вы узнаете о различных типах текстовых элементов ввода в HTML-формах. Мы продолжим работу с файлом form_basics.html, созданным на предыдущем этапе.
Текстовые поля ввода - это основные элементы форм, которые позволяют пользователям вводить различные типы текстовой информации. Исследуем разные типы полей ввода:
Откройте файл ~/project/form_basics.html и обновите форму различными текстовыми элементами ввода:
<form action="/submit" method="post">
<!-- Single-line text input -->
<label for="username">Username:</label>
<input
type="text"
id="username"
name="username"
placeholder="Enter your username"
/>
<!-- Email input -->
<label for="email">Email:</label>
<input type="email" id="email" name="email" placeholder="Enter your email" />
<!-- Password input -->
<label for="password">Password:</label>
<input
type="password"
id="password"
name="password"
placeholder="Enter your password"
/>
<!-- Number input -->
<label for="age">Age:</label>
<input type="number" id="age" name="age" min="0" max="120" />
<!-- Multiline text input -->
<label for="comments">Comments:</label>
<textarea
id="comments"
name="comments"
rows="4"
cols="50"
placeholder="Enter your comments"
></textarea>
</form>
Ключевые атрибуты для текстовых полей ввода:
type: Определяет тип ввода (текст, электронная почта, пароль, число)id: Уникальный идентификатор для поля вводаname: Имя, используемое при отправке данных формыplaceholder: Подсказка, отображаемая до ввода пользователемminиmax: Границы для числовых полей вводаrowsиcols: Размеры для текстовой области (textarea)
Пример вывода при отображении в браузере:
Примечание: Узнайте больше о Как предварительно просматривать HTML-файлы в WebIDE.

Создание элементов выбора: переключатели и флажки
На этом этапе вы узнаете, как создавать переключатели (радио-кнопки) и флажки (чекбоксы) в HTML-формах. Эти типы полей ввода важны для того, чтобы пользователи могли делать выбор из предварительно определенных вариантов.
Откройте файл ~/project/form_basics.html и добавьте следующие элементы - переключатели и флажки:
<form action="/submit" method="post">
<!-- Radio Button Group -->
<fieldset>
<legend>Select Your Favorite Programming Language:</legend>
<input type="radio" id="python" name="language" value="python" />
<label for="python">Python</label>
<input type="radio" id="javascript" name="language" value="javascript" />
<label for="javascript">JavaScript</label>
<input type="radio" id="java" name="language" value="java" />
<label for="java">Java</label>
</fieldset>
<!-- Checkbox Group -->
<fieldset>
<legend>Select Your Skills:</legend>
<input type="checkbox" id="html" name="skills" value="html" />
<label for="html">HTML</label>
<input type="checkbox" id="css" name="skills" value="css" />
<label for="css">CSS</label>
<input type="checkbox" id="javascript" name="skills" value="javascript" />
<label for="javascript">JavaScript</label>
</fieldset>
</form>
Основные моменты о переключателях и флажках:
- Переключатели (
type="radio") позволяют выбрать только один вариант в группе - Флажки (
type="checkbox") позволяют выбирать несколько вариантов - Атрибут
nameобъединяет связанные поля ввода - Атрибут
valueопределяет значение, которое будет отправлено - Тэги
<fieldset>и<legend>помогают организовать и подписывать группы полей ввода
Пример вывода при отображении в браузере:

Добавление кнопок загрузки файлов и отправки формы
На этом этапе вы узнаете, как добавить поля для загрузки файлов и кнопки отправки в вашу HTML-форму. Эти элементы важны для того, чтобы пользователи могли загружать файлы и отправлять данные формы.
Откройте файл ~/project/form_basics.html и добавьте следующие элементы:
<form action="/submit" method="post" enctype="multipart/form-data">
<!-- Previous form elements from previous steps -->
<!-- File Upload Input -->
<fieldset>
<legend>Upload Your Profile Picture:</legend>
<input type="file" id="profile-pic" name="profile-pic" accept="image/*" />
</fieldset>
<!-- Submit and Reset Buttons -->
<div>
<input type="submit" value="Submit Form" />
<input type="reset" value="Clear Form" />
</div>
</form>
Основные моменты о полях для загрузки файлов и кнопках отправки:
type="file"создает поле для загрузки файловaccept="image/*"ограничивает выбор файлов только изображениямиenctype="multipart/form-data"необходим для загрузки файловtype="submit"создает кнопку для отправки данных формыtype="reset"очищает все поля формы
Пример вывода при отображении в браузере:

Важные атрибуты:
accept: Определяет разрешенные типы файловvalue: Устанавливает текст на кнопкахname: Идентифицирует поле ввода при отправке данных
Практика комбинирования элементов формы
На этом последнем этапе вы создадите комплексную форму регистрации, которая сочетает все HTML-элементы форм, которые вы узнали. Мы спроектируем форму регистрации пользователя, которая демонстрирует практическое применение различных типов полей ввода.
Создайте новый файл ~/project/registration_form.html со следующим содержимым:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>User Registration Form</title>
</head>
<body>
<form action="/register" method="post" enctype="multipart/form-data">
<h2>User Registration</h2>
<!-- Personal Information -->
<fieldset>
<legend>Personal Details</legend>
<label for="fullname">Full Name:</label>
<input type="text" id="fullname" name="fullname" required />
<label for="email">Email:</label>
<input type="email" id="email" name="email" required />
<label for="age">Age:</label>
<input type="number" id="age" name="age" min="18" max="100" />
</fieldset>
<!-- Account Preferences -->
<fieldset>
<legend>Account Preferences</legend>
<label>Preferred Programming Language:</label>
<input type="radio" id="python" name="language" value="python" />
<label for="python">Python</label>
<input
type="radio"
id="javascript"
name="language"
value="javascript"
/>
<label for="javascript">JavaScript</label>
<label>Skills:</label>
<input type="checkbox" id="web" name="skills" value="web" />
<label for="web">Web Development</label>
<input type="checkbox" id="data" name="skills" value="data" />
<label for="data">Data Science</label>
</fieldset>
<!-- Profile Picture -->
<fieldset>
<legend>Profile Picture</legend>
<input type="file" id="profile" name="profile" accept="image/*" />
</fieldset>
<!-- Additional Comments -->
<fieldset>
<legend>Additional Information</legend>
<label for="comments">Comments:</label>
<textarea id="comments" name="comments" rows="4" cols="50"></textarea>
</fieldset>
<!-- Form Submission -->
<div>
<input type="submit" value="Register" />
<input type="reset" value="Clear Form" />
</div>
</form>
</body>
</html>
Основные особенности этой комбинированной формы:
- Несколько типов полей ввода (текст, электронная почта, число, переключатели, флажки)
- Загрузка файлов
- Текстовая область для дополнительных комментариев
- Кнопки отправки и сброса формы
- Группы полей (
<fieldset>) для организации разделов формы - Обязательные и необязательные поля
Пример вывода при отображении в браузере:

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



