Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

132
Views
Login still happens even when input fields are empty

I am creating a login page using React. Localhost:3000 still alerts 'thank you for registering' even when inputs are empty. Did this from tutorial and followed the codes exactly, but still can't figure out for days. I tried removing the space between the double quotes in the if-else statement, but to no avail.

Here's the code:

import { useState } from "react";
import styles from "./register.css";
import Login from "../../containers/login/index";

function Register({ props, history }) {

    const [name, setName] = useState();
    const [email, setEmail] = useState();
    const [password, setPassword] = useState();

    function registerClicked() {
        if (name !== " " && email !== " " && password !== " ") {
            console.log(name, email, password);
            alert("Thanks for registering");
            history.push("/");
        } else {
            alert("Please register to continue");
        }
    }


    return(
        <div className="regContainer">

            <p className="registerTitle">Register to sign in</p>

            <input type="text" 
            placeholder="Create username" 
            onChange={(nameText) => setName(nameText.target.value)} />

            <input type="text" 
            placeholder="Email address" 
            onChange={(emailText) => setEmail(emailText.target.value)} />

            <input type="password" 
            placeholder="Password" 
            onChange={(passwordText) => setPassword(passwordText.target.value)} />

            <button onClick={() => registerClicked()}>Register</button>

            <p className="loginInstead">Already have an account? Sign in instead</p>

        </div>
    );
}

export default Register;
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

cause const [name, setName] = useState(); the name actually equals undefined.

set a default value const [name, setName] = useState("");

or use a fuzzy judgement if(!name)

about 4 years ago · Juan Pablo Isaza Report

0

All states after registering must be set to null

if (name !== "" && email !== "" && password !== "") {
        console.log(name, email, password);
        alert("Thanks for registering");
        setName(null);
        setEmail(null);
        setPassword(null);
        history.push("/");
    }

prop value must be set to all inputs

 <input type="text" 
        placeholder="Create username" 
        value={name}
        onChange={(nameText) => setName(nameText.target.value)} />

        <input type="text" 
        placeholder="Email address"
        value={email} 
        onChange={(emailText) => setEmail(emailText.target.value)} />

        <input type="password" 
        placeholder="Password" 
        value={password}
        onChange={(passwordText) => setPassword(passwordText.target.value)} />
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!