3

I do not want to submit form clicking on submit. So i am using :

onSubmit (e) {
    e.preventDefault();
    console.log(this.state);
  }

<form className="loginform">
              <h1 className="logo"><img src={images.Logo} /></h1>
              <input
                className="login"
                placeholder="Username"
                type="text"
                required="true"
                onBlur={(e) => { this.userName(e); }}
              />
              <input className="login" placeholder="Password" type="password" required="true" />
              <input
                className="submit"
                onClick={(e) => { this.onSubmit(e); }}
                type="submit"
                value="Submit"
              />
            </form>

Doing so form validation is not working. I want to use default form validation with preventDefault.

1
  • 1
    Did you try using your method as a onSubmit property on your form instead? Commented Apr 21, 2018 at 9:58

1 Answer 1

5

You should use onsubmit form event:

<form className="loginform" onSubmit={this.onSubmit.bind(this)}>
  <h1 className="logo"><img src={images.Logo} /></h1>
  <input
    className="login"
    placeholder="Username"
    type="text"
    required="true"
    onBlur={(e) => { this.userName(e); }}
  />
  <input className="login" placeholder="Password" type="password" required="true" />
  <input
    className="submit"
    type="submit"
    value="Submit"
  />
</form>

In general you should avoid handling form submission via button onclick events, additional benefit of onsubmit is that it will also be fired on ENTER key submission.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.