Open In App

How to handle input forms with useState Hook in React ?

Handling input forms with useState in React involves creating state variables to store the values of input fields and updating them as the user interacts with the form.

Handling input forms with useState:

Example: Below is an example of handling input forms with useState.




import React, {
    useState
}
from 'react';
import './App.css';
 
const FormExample = () => {
 
    const [name, setName] = useState('');
    const [email, setEmail] = useState('');
 
    // Event handlers to update state variables
    const handleNameChange = (event) => {
        setName(event.target.value);
    };
 
    const handleEmailChange = (event) => {
        setEmail(event.target.value);
    };
 
 
    const handleSubmit = (event) => {
        // Prevent default form submission
        event.preventDefault();
        console.log('Name:', name);
        console.log('Email:', email);
    };
 
    return (
        <div className="form-container">
            <h2>Input Form</h2>
            <form onSubmit={handleSubmit}>
                <div className="form-group">
                    <label>Name:</label>
                    <input
                        type="text"
                        value={name}
                        onChange={handleNameChange}
                    />
                </div>
                <div className="form-group">
                    <label>Email:</label>
                    <input
                        type="email"
                        value={email}
                        onChange={handleEmailChange}
                    />
                </div>
                <button type="submit">Submit</button>
            </form>
        </div>
    );
};
 
export default FormExample;




.form-container {
  max-width: 400px;
  margin: auto;
  padding: 20px;
  border: 1px solid #ccc;
  border-radius: 5px;
}
 
.form-group {
  margin-bottom: 15px;
}
 
label {
  display: block;
  margin-bottom: 5px;
}
 
input[type="text"],
input[type="email"] {
  width: 100%;
  padding: 8px;
  font-size: 16px;
  border: 1px solid #ccc;
  border-radius: 5px;
}
 
button {
  padding: 10px 20px;
  font-size: 16px;
  background-color: #007bff;
  color: #fff;
  border: none;
  border-radius: 5px;
  cursor: pointer;
}
 
button:hover {
  background-color: #0056b3;
}

Output:

Output


Article Tags :