I am trying to have the radio buttons turn blue when I click them but for some unknown reason, it doesn't.
I have tried removing the value property, the name property but it doesn't work.
constructor() {
super()
this.state = {
firstName: '',
lastName: '',
Age: '',
Gender: '',
isSubmitted: false
}
this.handleChange = this.handleChange.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);
}
handleChange(event){
const {name, value, type, checked} = event.target
type === "checkbox" ?
this.setState({ [name]: checked })
: this.setState({ [name]: value })
this.setState({
isSubmitted: false
})
}
handleSubmit(event){
this.setState({isSubmitted:true})
event.preventDefault();
}
render() {
return (
<main>
<form onSubmit={this.handleSubmit}>
<input
type="text"
name="firstName"
value={this.state.firstName}
placeholder="First Name"
onChange={this.handleChange}/>
<br />
<input name="lastName" value={this.state.lastName}
placeholder="Last Name"
onChange={this.handleChange}/><br />
<input type="number" name="Age" value={this.state.Age}
placeholder="Age" onChange={this.handleChange}/><br />`
<label>
<input
type="radio"
name="gender"
value="male"
checked={this.state.Gender == "Male"}
onChange={this.handleChange}
/> Male<br />
</label>
<label>
<input
type="radio"
name="gender"
checked={this.state.Gender == "Female"}
value="female"
onChange={this.handleChange}
/> Female <br /> <br />
</label>
<button>Submit</button>
</form>
<hr />
<h2>Entered information:</h2>
{ this.state.isSubmitted == true ?
<div> <p> Your name: {this.state.firstName}
{this.state.lastName }</p>
<p> Your age: {this.state.Age} </p>
<p> Your gender: {this.state.Gender} </p> </div>
: <div> </div>
}
</main>
)
}
I expected for the radio buttons to be clickable and for it to output the value that you clicked to the screen. Instead, it just shows nothing next to gender.