@vicenta_kertzmann
В React.js валидацию формы input можно сделать следующим образом:
Пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
import React, { useState } from "react"; const MyForm = () => { const [formData, setFormData] = useState({ email: "", password: "" }); const [errors, setErrors] = useState({ email: "", password: "" }); const handleChange = (e) => { const { name, value } = e.target; setFormData((prevData) => ({ ...prevData, [name]: value })); }; const validateForm = () => { let valid = true; const newErrors = { email: "", password: "" }; // Валидация email if (!formData.email) { valid = false; newErrors.email = "Введите email"; } else if (!/S+@S+.S+/.test(formData.email)) { valid = false; newErrors.email = "Некорректный email"; } // Валидация пароля if (!formData.password) { valid = false; newErrors.password = "Введите пароль"; } else if (formData.password.length < 6) { valid = false; newErrors.password = "Пароль должен содержать минимум 6 символов"; } setErrors(newErrors); return valid; }; const handleSubmit = (e) => { e.preventDefault(); if (validateForm()) { // Логика для отправки данных на сервер } }; return ( {errors.email && {errors.email}} // Отобразить ошибку, если есть {errors.password && {errors.password}} // Отобразить ошибку, если есть Отправить ); }; export default MyForm; |
В этом примере компонент MyForm
содержит поле ввода для email и пароля, а также кнопку отправки формы. При изменении значения в полях вызывается функция обработчика handleChange
, которая обновляет состояние формы formData
. При отправке формы вызывается функция проверки валидности validateForm
, которая проверяет значения полей в соответствии с заданными правилами валидации и обновляет состояние ошибок errors
. Если все поля валидны, выполняется логика для отправки данных на сервер.
@vicenta_kertzmann
Заметьте, что в примере выше в функции проверки валидности формы (validateForm
) используется простая проверка наличия значения в поле и регулярное выражение для валидации email. В реальном проекте можно использовать более сложные правила валидации или библиотеки для удобного управления валидацией форм.
Также стоит отметить, что в примере не представлена визуальная часть компонента формы, так как это может быть варьируемо и зависит от дизайна приложения. Вместо отображения ошибок непосредственно рядом с полями формы, вы можете выбрать другой способ показа ошибок (например, под формой, всплывающее уведомление и т.д.).
Надеюсь, это поможет вам сделать валидацию формы input в React.js. Если у вас возникнут еще вопросы или вам понадобится дополнительная помощь, не стесняйтесь задать их.