May 26, 2026By Sagar Kshirsagar

Handling Forms in React JS

Forms are one of the most essential parts of web development. Whether it's a login page, registration form, feedback form, or payment page, forms allow users to interact with applications.

In React, form handling becomes simple and powerful due to its state management and event handling capabilities.

In this blog, we will explore how form handling in React works, along with examples and best practices.


What is Form Handling in React?

Form handling in React refers to managing user input using React components and state.

  • In traditional HTML, form data is handled by the browser
  • In React, form data is handled using JavaScript and component state

React primarily uses controlled components to manage forms.


Why Use React for Forms?

Here are the key benefits of handling forms in React:

  • ✅ Easy to manage user input
  • ✅ Supports real-time validation
  • ✅ Better control over form data
  • ✅ Enables dynamic form updates
  • ✅ Improves user experience


Controlled Components in React

A controlled component is a form element whose value is controlled by React state.

Example:

import { useState } from "react";


function App() {

  const [name, setName] = useState("");


  return (

    <div>

      <h2>User Form</h2>

      <input

        type="text"

        value={name}

        onChange={(e) => setName(e.target.value)}

        placeholder="Enter your name"

      />

      <p>Your Name: {name}</p>

    </div>

  );

}


export default App;



How It Works

  • useState() stores the input value
  • value={name} connects input with state
  • onChange updates the state when the user types

👉 This creates a fully controlled form field.


Handling Multiple Inputs

Forms often contain multiple fields like name, email, and password.

Example:

import { useState } from "react";


function App() {

  const [formData, setFormData] = useState({

    name: "",

    email: "",

  });


  const handleChange = (e) => {

    setFormData({

      ...formData,

      [e.target.name]: e.target.value,

    });

  };


  return (

    <div>

      <input

        type="text"

        name="name"

        placeholder="Enter name"

        value={formData.name}

        onChange={handleChange}

      />

      <input

        type="email"

        name="email"

        placeholder="Enter email"

        value={formData.email}

        onChange={handleChange}

      />

      <h3>{formData.name}</h3>

      <h3>{formData.email}</h3>

    </div>

  );

}


export default App;



Benefit

Using a single object state makes form management:

  • Cleaner
  • More scalable
  • Easier to maintain


Handling Form Submission

React uses the onSubmit event to handle form submission.

Example:

import { useState } from "react";


function App() {

  const [username, setUsername] = useState("");


  const handleSubmit = (e) => {

    e.preventDefault();

    alert(`Submitted: ${username}`);

  };


  return (

    <form onSubmit={handleSubmit}>

      <input

        type="text"

        placeholder="Enter username"

        value={username}

        onChange={(e) => setUsername(e.target.value)}

      />

      <button type="submit">Submit</button>

    </form>

  );

}


export default App;



Why Use preventDefault()?

Normally, forms reload the page after submission.

  • e.preventDefault() stops the page reload
  • Allows React to handle data smoothly


Handling Checkbox in React

Example:

import { useState } from "react";


function App() {

  const [checked, setChecked] = useState(false);


  return (

    <div>

      <input

        type="checkbox"

        checked={checked}

        onChange={() => setChecked(!checked)}

      />

      <p>{checked ? "Checked" : "Not Checked"}</p>

    </div>

  );

}


export default App;



Handling Select Dropdown

Example

import { useState } from "react";


function App() {

  const [city, setCity] = useState("");


  return (

    <div>

      <select value={city} onChange={(e) => setCity(e.target.value)}>

        <option value="">Select City</option>

        <option value="Pune">Pune</option>

        <option value="Mumbai">Mumbai</option>

        <option value="Delhi">Delhi</option>

      </select>

      <h3>Selected City: {city}</h3>

    </div>

  );

}


export default App;



Integration with Other IT Courses

Web development skills can be enhanced by combining them with other in-demand technologies. Many training institutes, including SevenMentor, offer integrated learning paths with courses such as:

  • Data Science – For data-driven web applications
  • Data Analytics – To analyze user behavior and performance
  • Python – Popular for backend development
  • Cloud Computing – For deploying scalable applications
  • Cyber Security – To secure web applications
  • SAP – For enterprise-level solutions
  • Generative AI & AI Course – To build intelligent applications
  • ChatGPT Course – For AI-powered chatbot integration
  • DevOps – For continuous integration and deployment
  • Power BI – For data visualization dashboards
  • Salesforce – For CRM-based web solutions
  • Java – Widely used for enterprise web applications

Learning these technologies alongside web development can significantly boost your career prospects.


Form Validation in React

Validation ensures that user input is correct before submission.

Simple Validation Example

import { useState } from "react";


function App() {

  const [email, setEmail] = useState("");

  const [error, setError] = useState("");


  const handleSubmit = (e) => {

    e.preventDefault();


    if (!email.includes("@")) {

      setError("Invalid Email");

    } else {

      setError("");

      alert("Form Submitted");

    }

  };


  return (

    <form onSubmit={handleSubmit}>

      <input

        type="text"

        placeholder="Enter email"

        value={email}

        onChange={(e) => setEmail(e.target.value)}

      />

      <button type="submit">Submit</button>

      <p>{error}</p>

    </form>

  );

}


export default App;


Best Practices for Handling Forms in React

1. Use Controlled Components

Provides better control and validation

2. Keep State Organized

Use object state for complex forms

3. Validate User Input

Always validate critical fields before submission

4. Reuse Form Functions

Create reusable handlers like handleChange

5. Avoid Unnecessary State

Store only the required data


Popular Libraries for React Forms

React supports powerful libraries for advanced form handling:

1. React Hook Form

  • Fast and lightweight
  • Great for performance

2. Formik

  • Ideal for large-scale applications
  • Built-in support for validation


3. Yup

  • Used for schema-based validation
  • Works well with Formik


Conclusion

Handling forms in React becomes efficient and scalable with controlled components, state management, and event handling. By following best practices and using modern libraries, developers can build dynamic, user-friendly, and high-performance forms.




Frequently Asked Questions (FAQs):

1. What is form handling in React JS?

Form handling in React JS refers to managing user input using React state and event handlers. Instead of relying on the browser, React controls form data through controlled components, giving developers better control over input fields.


2. What are controlled components in React forms?

Controlled components are form elements (like input, textarea, select) whose values are controlled by React state. This allows real-time updates, validation, and better control over form behavior.


3. How do you handle form submission in React?

Form submission in React is handled using the onSubmit event. Developers typically use e.preventDefault() to stop page reload and then process the form data using state values.


4. Why is validation important in React forms?

Form validation ensures that user input is correct and complete before submission. It helps prevent errors, improves data quality, and enhances the user experience by providing instant feedback.


5. Which libraries are commonly used for handling forms in React?

Popular libraries for form handling in React include:

  • React Hook Form – Lightweight and fast
  • Formik – Great for large forms
  • Yup – Used for schema-based validation

These libraries simplify form management, validation, and error handling.


Related Links:

Java Design Patterns You Should Learn

Introduction to Java Generics

Why Choose Java For AI?

Do visit our channel to know more: SevenMentor


Author:-

Sagar Kshirsagar


Sagar Kshirsagar

Expert trainer and consultant at SevenMentor with years of industry experience. Passionate about sharing knowledge and empowering the next generation of tech leaders.

#Technology#Education#Career Guidance
Handling Forms in React JS | SevenMentor