HTML复选框-将值另存为;“是”&引用;否";而不是",;“真的”&引用;假;在数据库中(Javascript)
我想在数据库中将复选框值保存为“是”/“否”,而不是“真”/“假”。我使用reactjs获取值并存储在数据库中 请找到我下面的代码,我正在尝试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
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)?“是”:“否”代码>就足够了。