Javascript 如何修复复选框错误?

Javascript 如何修复复选框错误?,javascript,css,reactjs,Javascript,Css,Reactjs,每当我尝试单击页面上的复选框时,它都不会选中实际的复选框。我知道我的反应有些不对劲,但我不知道我做错了什么。你能帮忙吗 我曾尝试在stack和其他网站上搜索答案,但结果一无所获 class Description extends React.Component { constructor(props) { super(props); this.state = { checked: false, };

每当我尝试单击页面上的复选框时,它都不会选中实际的复选框。我知道我的反应有些不对劲,但我不知道我做错了什么。你能帮忙吗

我曾尝试在stack和其他网站上搜索答案,但结果一无所获

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 &nbsp;
                </label>
                <label>
                    <input
                        name="Savings Account"
                        type="checkbox"
                        checked={this.state.checked}
                        onChange={this.handleInputChange} />
                        Savings Account &nbsp;
                </label>
                <label>
                    <input
                        name="CDs/Money Market Accounts"
                        type="checkbox"
                        checked={this.state.checked}
                        onChange={this.handleInputChange} />
                        CDs/Money Market Accounts &nbsp;
                </label>
                <br />
                <label>
                    <input
                        name="Student Banking"
                        type="checkbox"
                        checked={this.state.checked}
                        onChange={this.handleInputChange} />
                        Student Banking &nbsp;
                </label>
                <label>
                    <input
                        name="Auto Loans"
                        type="checkbox"
                        checked={this.state.checked}
                        onChange={this.handleInputChange} />
                        Auto Loans &nbsp;
                </label>
                <label>
                    <input
                        name="Home Equity"
                        type="checkbox"
                        checked={this.state.checked}
                        onChange={this.handleInputChange} />
                        Home Equity &nbsp;
                </label>
                <br />
                <label>
                    <input
                        name="Mortgage"
                        type="checkbox"
                        checked={this.state.checked}
                        onChange={this.handleInputChange} />
                        Mortgage &nbsp;
                </label>
                <label>
                    <input
                        name="Student Loans"
                        type="checkbox"
                        checked={this.state.checked}
                        onChange={this.handleInputChange} />
                        Student Loans &nbsp;
                </label>
                <label>
                    <input
                        name="Saving for Retirement"
                        type="checkbox"
                        checked={this.state.checked}
                        onChange={this.handleInputChange} />
                        Saving for Retirement &nbsp;
                </label>
                <br />
                <label>
                    <input
                        name="Investment Account"
                        type="checkbox"
                        checked={this.state.checked}
                        onChange={this.handleInputChange} />
                        Investment Account &nbsp;
                </label>
                <label>
                    <input
                        name="Credit Card"
                        type="checkbox"
                        checked={this.state.checked}
                        onChange={this.handleInputChange} />
                        Credit Card &nbsp;
                </label>
                <label>
                    <input
                        name="Other"
                        type="checkbox"
                        checked={this.state.checked}
                        onChange={this.handleInputChange} />
                        Other &nbsp;
                </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。这非常有效。我不明白为什么,但我很感激答案非常有用!!这非常有效,我不明白为什么,但我很感激答案非常有用!!这非常有效,我不明白为什么,但我很感激答案非常有用!!这非常有效,我不明白为什么,但我很感激答案非常有用!!