Javascript 如何修复复选框错误?
每当我尝试单击页面上的复选框时,它都不会选中实际的复选框。我知道我的反应有些不对劲,但我不知道我做错了什么。你能帮忙吗 我曾尝试在stack和其他网站上搜索答案,但结果一无所获Javascript 如何修复复选框错误?,javascript,css,reactjs,Javascript,Css,Reactjs,每当我尝试单击页面上的复选框时,它都不会选中实际的复选框。我知道我的反应有些不对劲,但我不知道我做错了什么。你能帮忙吗 我曾尝试在stack和其他网站上搜索答案,但结果一无所获 class Description extends React.Component { constructor(props) { super(props); this.state = { checked: false, };
class Description extends React.Component {
constructor(props) {
super(props);
this.state = {
checked: false,
};
this.handleInputChange = this.handleInputChange.bind(this);
}
handleInputChange(event) {
const target = event.target;
const value = target.type === 'checkbox' ? target.checked : target.value;
const name = target.name;
this.setState({
[name]: value
});
}
render() {
return (
<form>
<label>
<input
name="Checking Account"
type="checkbox"
checked={this.state.checked}
onChange={this.handleInputChange} />
Checking Account
</label>
<label>
<input
name="Savings Account"
type="checkbox"
checked={this.state.checked}
onChange={this.handleInputChange} />
Savings Account
</label>
<label>
<input
name="CDs/Money Market Accounts"
type="checkbox"
checked={this.state.checked}
onChange={this.handleInputChange} />
CDs/Money Market Accounts
</label>
<br />
<label>
<input
name="Student Banking"
type="checkbox"
checked={this.state.checked}
onChange={this.handleInputChange} />
Student Banking
</label>
<label>
<input
name="Auto Loans"
type="checkbox"
checked={this.state.checked}
onChange={this.handleInputChange} />
Auto Loans
</label>
<label>
<input
name="Home Equity"
type="checkbox"
checked={this.state.checked}
onChange={this.handleInputChange} />
Home Equity
</label>
<br />
<label>
<input
name="Mortgage"
type="checkbox"
checked={this.state.checked}
onChange={this.handleInputChange} />
Mortgage
</label>
<label>
<input
name="Student Loans"
type="checkbox"
checked={this.state.checked}
onChange={this.handleInputChange} />
Student Loans
</label>
<label>
<input
name="Saving for Retirement"
type="checkbox"
checked={this.state.checked}
onChange={this.handleInputChange} />
Saving for Retirement
</label>
<br />
<label>
<input
name="Investment Account"
type="checkbox"
checked={this.state.checked}
onChange={this.handleInputChange} />
Investment Account
</label>
<label>
<input
name="Credit Card"
type="checkbox"
checked={this.state.checked}
onChange={this.handleInputChange} />
Credit Card
</label>
<label>
<input
name="Other"
type="checkbox"
checked={this.state.checked}
onChange={this.handleInputChange} />
Other
</label>
</form>
);
}
}
ReactDOM.render(
<Description/>,
document.getElementById('checkbox')
);
类描述扩展了React.Component{
建造师(道具){
超级(道具);
此.state={
勾选:假,
};
this.handleInputChange=this.handleInputChange.bind(this);
}
handleInputChange(事件){
const target=event.target;
const value=target.type=='checkbox'?target.checked:target.value;
const name=target.name;
这是我的国家({
[名称]:值
});
}
render(){
返回(
支票帐户
储蓄帐户
CDs/货币市场账户
学生银行
汽车贷款
房屋净值
抵押贷款
学生贷款
退休储蓄
投资账户
信用卡
其他
);
}
}
ReactDOM.render(
,
document.getElementById('复选框')
);
我想让该计划能够在本月底选中该框 以下是学生银行业务的一个例子 将名称“学生银行”更改为“学生银行” 将this.state.checked更改为this.state.studentBanking 改变
<input
name="Student Banking"
type="checkbox"
checked={this.state.checked}
onChange={this.handleInputChange} />
到
对其他输入复选框也执行相同操作以下是学生银行业务的一个示例 将名称“学生银行”更改为“学生银行” 将this.state.checked更改为this.state.studentBanking 改变
<input
name="Student Banking"
type="checkbox"
checked={this.state.checked}
onChange={this.handleInputChange} />
到
对其他输入复选框也执行相同操作您需要在
onChange
事件中使用setState
设置选中的状态值
handleInputChange(event) {
const target = event.target;
const value = target.type === 'checkbox' ? target.checked : target.value;
const name = target.name;
this.setState({
checked: value
});
}
您需要在onChange
事件中使用setState
设置checked
状态值
handleInputChange(event) {
const target = event.target;
const value = target.type === 'checkbox' ? target.checked : target.value;
const name = target.name;
this.setState({
checked: value
});
}
您正在正确设置状态,但由于已检查的的绑定方式,检查无法工作
请换
checked={this.state.checked}
到
此外,请删除姓名中的空格
<input
name="CheckingAccount"
type="checkbox"
checked={this.state.CheckingAccount}
onChange={this.handleInputChange} />
您正在正确设置状态,但由于已检查的绑定方式的原因,检查无法工作
请换
checked={this.state.checked}
到
此外,请删除姓名中的空格
<input
name="CheckingAccount"
type="checkbox"
checked={this.state.CheckingAccount}
onChange={this.handleInputChange} />
这是因为您在单击信用卡时将状态设置为{“信用卡”:true}
。您可以做的只是相应地设置值。
我有一个使用您的代码本身的简单方法。这是因为您在单击信用卡时将状态设置为{“Credit Card”:true}
。您可以做的只是相应地设置值。
我有一个简单的方法来使用你的代码本身。这非常有效,我不明白为什么,但我很感激答案非常有用!!不客气。这是因为您正在使用event.target.name动态地为选中的复选框设置状态,所以名称必须是studentBanking,而不是studentBanking。这非常有效。我不明白为什么,但我很感激答案非常有用!!不客气。这是因为您正在使用event.target.name动态地为选中的复选框设置状态,所以名称必须是studentBanking,而不是studentBanking。这非常有效。我不明白为什么,但我很感激答案非常有用!!这非常有效,我不明白为什么,但我很感激答案非常有用!!这非常有效,我不明白为什么,但我很感激答案非常有用!!这非常有效,我不明白为什么,但我很感激答案非常有用!!