HTML复选框-将值另存为;“是”&引用;否";而不是",;“真的”&引用;假;在数据库中(Javascript)

HTML复选框-将值另存为;“是”&引用;否";而不是",;“真的”&引用;假;在数据库中(Javascript),javascript,html,reactjs,checkbox,Javascript,Html,Reactjs,Checkbox,我想在数据库中将复选框值保存为“是”/“否”,而不是“真”/“假”。我使用reactjs获取值并存储在数据库中 请找到我下面的代码,我正在尝试 handleInputChange(e) { const target = e.target; const name = target.name; const item = this.state.item; const value = target.type === 'checkbox' ? target.checked

我想在数据库中将复选框值保存为“是”/“否”,而不是“真”/“假”。我使用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 } />

但是,上面的代码工作不正常。它只存储默认值“true”/“false”。如何将其更改为“是”/“否”值


我有多个“复选框”组件,但我只希望这一个组件有“是”/“否”选项。剩余的组件应为默认组件。

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

所以最好创建一个变量,然后更新状态

let shouldCreate = ''

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

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

这可能会有所帮助

您的方法完全错误。“是否已检查?”状态仅由
checked
属性的存在或不存在而不是
值来描述。
用于区分具有相同名称的多个复选框(用于“选中所有适用的”问题)。此外,数据库通常支持布尔字段(它们是
true
/
false
),您不应该尝试将“Yes”和“No”存储在那里,这是将数据库呈现为文本时在视图中要做的事情(注意“作为文本”,而不是复选框!)
是否应该创建
将不存在,因为为什么要使用yes/no而不是true/false?需要什么?使用
value===true
完全是废话。在条件中,表达式始终返回布尔值。要检查是否正确,只需使用
,要检查是否错误使用
!value
@MarkusZeller我刚才从问题中复制了一些表达,我完全同意你的看法,但这部分与答案和首字母无关problem@MarkusZeller无论如何,我会用你的建议更新答案,谢谢!也不需要做复杂的if语句<代码>应该创建=(名称==“应该创建”&&value)?“是”:“否”很抱歉唠叨,但为什么要额外添加if?这是没有必要的<代码>让shouldCreate=(名称==“应该创建”&&value)?“是”:“否”就足够了。