HTML复选框 - 将值保存为"是" /"否"而不是" true" /" false"在数据库中(Javascript)

时间:2018-03-04 08:40:20

标签: javascript html5 reactjs checkbox

我想将复选框值保存为"是" /"否"而不是" true" /" false"在数据库中。我使用reactjs来获取值并存储在数据库中。

请找到我的下面的代码,我正在尝试。

handleInputChange(e) {
    const target = e.target;
    const name = target.name;
    const item = this.state.item;
    const value = target.type === 'checkbox' ? target.checked : target.value;
    if( name === "should_create" && value === false )
        {
            this.state.item.should_create="No";
        }
    else if( name === "should_create" && value === true )
        {
            this.state.item.should_create=="Yes";

        }
    else
        {
            this.state.item.should_create=="";
        }
            item[name] = value;
            this.setState({ item: item });

    }

HTML复选框代码:

<input name="should_create" checked={this.state.item.should_create==true ? "true":''} type="checkbox" value={ this.state.item.should_create } onChange={ this.handleInputChange } />

但是,上面的代码无法正常工作。它存储默认值&#34; true&#34; /&#34; false&#34;只要。如何将其更改为&#34;是&#34; /&#34;否&#34;价值?

我有多个&#34; Checkbox&#34;组件,但我想要这个&#34;是&#34; /&#34;否&#34;这个只有一个组件的选项。其余组件应为默认值。

1 个答案:

答案 0 :(得分:1)

您使用==作为作业,但它与===(表达式返回true或false)几乎相同

因此,创建变量然后只更新状态

会更好
let shouldCreate = ''

if (name === 'should_create') {
  shouldCreate = value ? 'Yes' : 'No'
}

item[name] = value;
this.setState({ item: item });

可能它应该有用https://codesandbox.io/s/v8v267m23l