15 - Contact Form with Email and Message Validation
Description
Develop a web form that collects user contact information (name, email, message).
Implement validation for email format and non-empty fields.
Prevent form submission until all fields are valid.
Display clear error messages for invalid inputs.
Optionally, send a confirmation email upon successful submission.
Algorithm
Form Structure:
Create a form with input fields for name, email, and message.
Include a submit button to trigger form submission.
Validation Logic:
Attach event listeners (e.g.,
onBlur
) to validate fields as users type.Regular expression for email format validation.
Check for empty fields.
Store validation errors in state variables.
Form Submission:
Prevent default form submission behavior using
event.preventDefault()
.Check all validation states before proceeding.
If valid, send form data via email (optional) or display a success message.
Otherwise, display error messages alongside corresponding fields.
Code
Explanation
State Variables:
name
,email
,message
: Store user input values.errors
: Stores validation errors as an object with field names as keys.
HandleSubmit Function:
Prevents default form submission.
Validates each field using conditional statements.
Updates
errors
state with error messages.If no errors, handles form submission logic (e.g., sends email).
Clears errors after successful submission.
Validation Logic:
Checks for empty fields using
if (!field)
.Uses a regular expression to validate email format.
isValid Function:
Checks if any validation errors exist, enabling/disabling the submit button.
Form Structure:
Uses
onSubmit
to triggerhandleSubmit
.Renders input fields with error messages below (if any).
Disables the submit button if not valid.
Additional Notes
Replace the console log with actual email sending logic for real-world use.
Consider using a validation library for more complex rules and error handling.
Implement security measures like CAPTCHA to prevent spam.
Last updated