I"m trying to validate password field to show an alert when the validation fails
Here's what I've tried so far but it's not working. Any help is greatly appreciated.
class PasswordForm extends React.Component {
constructor(props) {
super(props);
this.state = {value: ''};
this.handleChange = this.handleChange.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);
}
handleChange(event) {
this.setState({value: event.target.value});
}
validate(event) {
var pass = event.target.value;
var reg = '/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,32}$/';
var test = reg.test(pass);
if (test) {
alert('pass');
} else{
alert('fail');
}
}
handleSubmit(event) {
if(this.state.value.length < 8) {
return false;
}
alert('A password was submitted that was ' + this.state.value.length + ' characters long.');
event.preventDefault();
}
render() {
return (
<form onSubmit={this.handleSubmit}>
<label>
Password:
<input type="password" value={this.state.value} onChange={this.handleChange} onInput={this.validate}/>
</label>
<input type="submit" value="Submit" />
</form>
);
}
}
ReactDOM.render(
<PasswordForm />,
document.getElementById('root')
);
What I want is when the user clicks on submit an alert box pops up if validation fails.
validate()method haven't been bound in constructor