Things to keep in mind while adding validation in UI

What is Form Validation?

Form validation is the process of checking that user input in a form is complete, accurate, and valid before it is submitted to the server. It’s important to validate form data on the client-side (in the browser) as well as on the server-side to ensure that the data meets the necessary requirements and constraints.

There are many different types of validation that can be performed on a form, depending on the nature of the data being collected and the requirements of the application. Some common types of validation include:

  • Required field validation: This checks that a required field has been filled out by the user.
  • Data type validation: This checks that the data entered by the user matches the expected data type (e.g. a number, a date, etc.).
  • Format validation: This checks that the data entered by the user matches a specific format (e.g. a phone number must be in the format 555-555-5555).
  • Range validation: This checks that the data entered by the user falls within a specific range (e.g. a number must be between 1 and 10).

By performing form validation, you can ensure that the data being submitted is accurate and complete, which can help to prevent errors and improve the overall user experience.

What are those things to keep in mind

Here are some things to keep in mind while developing the UI for a validation form in React:

  1. Make the error messages clear and specific: It’s important to provide clear and specific error messages to the user so they know what they need to do to correct any issues with their form submission.
  2. Use inline validation: Inline validation is when the error messages are displayed next to the form fields that are in error. This can make it easier for the user to understand what went wrong and how to fix it.
  3. Use visually distinct error messages: You can use color, font weight, or other visual cues to make the error messages stand out from the rest of the form. This can help the user quickly identify any issues with their form submission.
  4. Use a consistent style for error messages: To maintain a cohesive design, it’s important to use a consistent style for all of the error messages in your form. This can include things like the font, color, and layout of the error messages.
  5. Consider using a library for form validation: As mentioned previously, there are many libraries available that can help you with form validation in React. These libraries can provide pre-built validation logic and UI components, which can save you time and make it easier to create a better validation form.

A code example:

Here is an example of a form with validation in React that includes UI elements:

Copy codeimport React, { useState } from 'react';

function FormExample() {
  // Use state to store the form data and error messages
  const [formData, setFormData] = useState({
    email: '',
    password: '',
  const [errors, setErrors] = useState({});

  // Define the validation rules for each field
  const validationRules = {
    email: {
      required: true,
      email: true,
    password: {
      required: true,
      minLength: 8,

  // Validate the form data
  function validateForm() {
    // Reset the errors object

    // Loop through each field and validate its data
    Object.keys(formData).forEach(field => {
      const value = formData[field];
      const rules = validationRules[field];

      // Check if the field is required and if it's empty
      if (rules.required && !value) {
        setErrors(prevErrors => ({
          [field]: 'This field is required',

      // Check if the email field is in a valid format
      if (field === 'email' && && !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value)) {
        setErrors(prevErrors => ({
          [field]: 'Please enter a valid email address',

      // Check if the password field meets the minimum length requirement
      if (field === 'password' && rules.minLength && value.length < rules.minLength) {
        setErrors(prevErrors => ({
          [field]: `Password must be at least ${rules.minLength} characters`,

    // Return true if there are no errors, false otherwise
    return Object.keys(errors).length === 0;

  // Handle form submission
  function handleSubmit(event) {

    // Validate the form
    if (validateForm()) {
      // Form is valid, submit it to the server or perform other actions
      console.log('Form is valid, submission allowed');
    } else {
      // Form is invalid, display the error messages
      console.log('Form is invalid, submission prevented');

  // Handle form field changes
  function handleChange(event) {
    const { name, value } =;

    setFormData(prevData => ({
      [name]: value,

  return (
    <form onSubmit={handleSubmit}>
      <label htmlFor="email">Email</label>
      { && (
        <p style={{ color: 'red', fontWeight: 'bold' }}>{errors

Leave a Comment

Your email address will not be published. Required fields are marked *