【发布时间】:2018-08-12 02:38:18
【问题描述】:
我想在数据库中将复选框值保存为“是”/“否”而不是“真”/“假”。我正在使用 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”。如何将其更改为“是”/“否”值?
我有多个“复选框”组件,但我想要这个“是”/“否”选项仅用于一个组件。其余组件应为默认组件。
【问题讨论】:
-
你的方法是完全错误的。 “检查与否?”状态仅由
checked属性的存在与否而不是value来描述。value用于区分具有相同名称的多个复选框(例如“检查所有适用”问题)。更重要的是,数据库通常支持布尔字段(true/false),您不应该尝试在其中存储“是”和“否”,而是在 视图中做一些事情 当您将数据库呈现为文本时(注意“作为文本”,而不是复选框!) -
should_create将不存在 -
为什么要使用yes/no而不是true/false?有什么需求?
标签: javascript html reactjs checkbox