Форма ввода JavaScript

Создание формы ввода в JavaScript включает в себя написание HTML-кода для отображения самой формы и использование JavaScript для взаимодействия с элементами формы и обработки введённых данных. Вот пример простой формы регистрации с валидацией полей:

HTML-код формы

Создайте файл index.html с следующим содержанием:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Регистрация</title>
    <style>
        /* Простое оформление */
        body { font-family: Arial, sans-serif; padding: 20px; }
        form { display: flex; flex-direction: column; width: 300px; margin: auto; }
        label { margin-bottom: 5px; }
        input { margin-bottom: 10px; padding: 5px; border-radius: 5px; border: 1px solid #ccc; }
        button { padding: 10px; background-color: #007bff; color: white; border: none; cursor: pointer; }
        .error { color: red; margin-top: 5px; }
    </style>
</head>
<body>
    <h1>Регистрация</h1>
    <form id="registrationForm">
        <label for="name">Имя:</label>
        <input type="text" id="name" name="name" placeholder="Введите ваше имя" required>

        <label for="email">Электронная почта:</label>
        <input type="email" id="email" name="email" placeholder="Введите ваш email" required>

        <label for="password">Пароль:</label>
        <input type="password" id="password" name="password" placeholder="Введите ваш пароль" required>

        <button type="submit">Зарегистрироваться</button>
    </form>

    <!-- Элементы для отображения ошибок -->
    <div class="error" id="nameError"></div>
    <div class="error" id="emailError"></div>
    <div class="error" id="passwordError"></div>

    <script src="script.js"></script>
</body>
</html>

JavaScript-код для обработки формы

Создайте файл script.js с следующим содержанием:

document.addEventListener('DOMContentLoaded', function () {
    const form = document.getElementById('registrationForm');
    const nameInput = document.getElementById('name');
    const emailInput = document.getElementById('email');
    const passwordInput = document.getElementById('password');
    const nameError = document.getElementById('nameError');
    const emailError = document.getElementById('emailError');
    const passwordError = document.getElementById('passwordError');

    form.addEventListener('submit', function (event) {
        event.preventDefault(); // Предотвращаем стандартное поведение отправки формы

        // Очистка сообщений об ошибках
        nameError.textContent = '';
        emailError.textContent = '';
        passwordError.textContent = '';

        // Валидация полей
        if (nameInput.value.trim().length === 0) {
            nameError.textContent = 'Поле "Имя" обязательно для заполнения.';
        }

        if (!validateEmail(emailInput.value)) {
            emailError.textContent = 'Некорректный формат электронной почты.';
        }

        if (passwordInput.value.length < 6) {
            passwordError.textContent = 'Пароль должен содержать минимум 6 символов.';
        }

        // Проверка на наличие ошибок
        if (nameError.textContent || emailError.textContent || passwordError.textContent) {
            return; // Останавливаемся, если есть ошибки
        }

        // Отправка данных на сервер (здесь просто консольное логирование)
        console.log({
            name: nameInput.value,
            email: emailInput.value,
            password: passwordInput.value
        });

        alert('Данные успешно отправлены!');
    });

    // Функция для валидации электронной почты
    function validateEmail(email) {
        const re = /^(([^<>()[$$\\.,;:\s@"]+(\.[^<>()[$$\\.,;:\s@"]+)*)|(".+"))@(($$[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$$|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]\.[a-zA-Z]{2,}))$/
        return re.test(String(email).toLowerCase());
    }
});

Пояснение

  1. HTML-код:
    • Создано простое оформление формы с тремя полями: имя, электронная почта и пароль.
    • Каждый элемент формы имеет свой идентификатор для доступа к нему через JavaScript.
    • Добавлен блок для отображения возможных ошибок валидации.
  2. JavaScript-код:
    • После загрузки DOM происходит привязка событий к форме и её элементам.
    • При нажатии кнопки «Отправить» срабатывает событие submit, которое предотвращает стандартное поведение браузера (перезагрузку страницы) и запускается логика валидации.
    • Валидация проверяет корректность заполнения полей: имя должно быть непустым, электронная почта должна иметь правильный формат, а пароль должен состоять хотя бы из 6 символов.
    • Если ошибки отсутствуют, данные отправляются на сервер (в данном примере просто выводятся в консоль).

Заключение

Эта форма демонстрирует базовые принципы создания формы ввода с использованием JavaScript для валидации данных. В реальном проекте вместо консольного логирования можно отправлять данные на сервер с помощью AJAX-запросов или WebSocket-соединений.

Добавить комментарий

Войти с помощью: