🌐
50 React Coding Puzzles
  • 50 React Coding Puzzles
  • Contact
  • Reviews
  • Table of Contents
  • Introduction
  • 1 - Simple Counter App
  • 2 - Dynamic List of Items with Strikethrough
  • 3 - Color Picker with Hex Code Display
  • 4 - Password Strength Checker
  • 5 - Countdown Timer with Audio
  • 6 - Dynamic Movie List with Filtering and Sorting
  • 7 - Text Animation Component (Fade/Scroll)
  • 8 - Dynamically Generated Text Art
  • 9 - Meme Generator with Custom Text
  • 10 - "What Should I Eat?" Random Recipe Generator
  • 11 - Simple Quiz App with Multiple Choice
  • 12 - Unit Converter
  • 13 - Dynamic Image Gallery with Lightbox
  • 14 - Weather Widget with Temperature and Description
  • 15 - Contact Form with Email and Message Validation
  • 16 - Color Palette Generator
  • 17 - Drag-and-Drop Feature for Rearranging Items
  • 18 - Interactive Quiz with Dynamic Results and Feedback
  • 19 - To-Do List with Task Categorization
  • 20 - Note-Taking App with Markdown Support
  • 21 - Simple Calculator with Basic Operations
  • 22 - Word Scramble Game with Timer and Score
  • 23 - Number Guessing Game
  • 24 - Digital Clock with Time Zone Support
  • 25 - Interactive Time Zone Converter
  • 26 - Weather Forecast App with Location Detection
  • 27 - Real-Time Stock Ticker with Updates
  • 28 - Virtual Dice Roller with Multiple Dice
  • 29 - Responsive Navigation Menu with Dropdowns
  • 30 - Progress Bar for Loading or Task Completion
  • 31 - Modal Window for Alerts and Confirmations
  • 32 - Infinite Scroll for Loading More Content
  • 33 - Form Validation with Error Messages
  • 34 - Search Bar with Filtering and Suggestions
  • 35 - Drag-and-Drop File Upload
  • 36 - Interactive Color Picker with Sliders
  • 37 - Image Carousel with Autoplay
  • 38 - Rating System with Stars or Thumbs Up/Down
  • 39 - Comment Section with Nested Replies
  • 40 - Pagination for Long Lists of Data
  • 41 - Stopwatch app that tracks elapsed time
  • 42 - Responsive E-commerce Product Grid
  • 43 - Random Movie/Book Recommender
  • 44 - Kanban board for managing tasks with drag-and-drop
  • 45 - Chat application with real-time messaging using WebSockets
  • 46 - Calendar that displays events and allows scheduling
  • 47 - Tic-Tac-Toe Game
  • 48 - Hangman Game
  • 49 - Notes App
  • 50 - Expense Tracker
  • Afterword
  • Appendix
Powered by GitBook
On this page
  • Description
  • Algorithm
  • Classes
  • Code
  • Explanation
  • Possible Future Enhancements

15 - Contact Form with Email and Message Validation

Description

Create a React application that displays a contact form with email and message fields. The form should only submit when the input is valid.

Algorithm

  1. Create a form with email and message fields.

  2. Add state variables to store the form data and validation errors.

  3. Define validation functions for email and message.

  4. Use the useState hook to update the state variables when the form data changes.

  5. Use the useEffect hook to validate the form data when the form is submitted.

  6. Only submit the form if the validation is successful.

Classes

ContactForm: A component that renders the form and handles the submission.

Code

import React, { useState } from 'react';

function ContactForm() {
  const [email, setEmail] = useState('');
  const [message, setMessage] = useState('');
  const [errors, setErrors] = useState({});

  const validateEmail = (email) => {
    // Email validation logic
  };

  const validateMessage = (message) => {
    // Message validation logic
  };

  const handleSubmit = (event) => {
    event.preventDefault();
    const errors = {};
    if (!validateEmail(email)) {
      errors.email = 'Invalid email';
    }
    if (!validateMessage(message)) {
      errors.message = 'Invalid message';
    }
    if (Object.keys(errors).length === 0) {
      // Submit the form
    } else {
      setErrors(errors);
    }
  };

  return (
    <form onSubmit={handleSubmit}>
      <input
        type="email"
        value={email}
        onChange={(event) => setEmail(event.target.value)}
      />
      <textarea
        value={message}
        onChange={(event) => setMessage(event.target.value)}
      />
      {errors.email && <p>{errors.email}</p>}
      {errors.message && <p>{errors.message}</p>}
      <button type="submit">Submit</button>
    </form>
  );
}

export default ContactForm;

Explanation

The ContactForm component renders a form with email and message fields. The component uses the useState hook to store the form data and validation errors. The validateEmail and validateMessage functions check if the input is valid. The handleSubmit function is called when the form is submitted, and it validates the form data. If the validation is successful, the form is submitted. Otherwise, the error messages are displayed.

Possible Future Enhancements

  • Add more validation rules for email and message.

  • Display a loading indicator while the form is being submitted.

  • Use a library like React Hook Form for form validation.

  • Style the form with CSS.

Previous14 - Weather Widget with Temperature and DescriptionNext16 - Color Palette Generator

Last updated 10 months ago