【发布时间】:2019-09-07 13:37:14
【问题描述】:
我试图让单选按钮在单击它们时变为蓝色,但由于某种未知原因,它没有。
我尝试删除 value 属性、name 属性,但它不起作用。
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>
)
}
我希望单选按钮可以点击,并将您点击的值输出到屏幕上。相反,它只显示性别旁边的任何内容。
【问题讨论】:
-
我建议你使用Formik来处理表格
标签: javascript reactjs ecmascript-6 jsx