reactjs - 如何在反应js中获取复选框的值
问题描述
我正在尝试检索我的复选框的检查值,但我得到空值这是我的代码
<form onSubmit={this.onSubmit}>
<fieldset>
<legend>RFX/RFP:</legend>
<div className="form-check">
<input type="checkbox" className="form-check-input" onChange={this.onChange} value={this.state.rfx} name="rfx" id="rfx" />
<label className="form-check-label" name="rfx">RFX</label>
<input type="checkbox" className="form-check-input" onChange={this.onChange} value={this.state.rfp} name="rfp" id="rfp" />
<label className="form-check-label" >RFP</label>
<input type="checkbox" className="form-check-input" onChange={this.onChange} value={this.state.rfp_x} name="rfp(x)" id="rfp(x)"/>
<label className="form-check-label" >RFP(X)</label>
<input type="checkbox" className="form-check-input" onChange={this.onChange}name="all" id="all" />
<label className="form-check-label" name="all" id="all">ALL</label>
</div>
</form>
和我的方法:
constructor(props){
super(props)
this.state={
rfp:"",
rfx:"",
rfp_x:"",
all:"",
}
this.onChange = this.onChange.bind(this);
this.onSubmit = this.onSubmit.bind(this);
}
onChange(e){
this.setState({[e.target.name] : e.target.value});}
onSubmit(e){
e.preventDefault();
const FilterRegion={
rfx:this.state.rfx,
rfp:this.state.rfp,
rfp_x:this.state.rfp_x,
all:this.state.all,
}
console.log(FilterRegion)
}
和我提交表单时的屏幕:
https://gyazo.com/32a24813545ebf7d3a48b72be724a76f
请我尝试解决我的问题并显示我的复选框的值或名称!我需要做什么
解决方案
使用受控组件时,您不会获得值,您只需将其提供给 HTML:您的 javascript 状态是事实的来源。也就是说,您应该进行以下更改:
对复选框值使用布尔值:
this.state = {
rfp: false,
rfx: false,
rfp_x: false,
all: false
};
使用event.target.checked
而不是event.target.value
:
this.setState({ [e.target.name]: e.target.checked });
演示:https ://codesandbox.io/s/poliished-bush-5mf1n?file=/src/App.js
推荐阅读
- discord - Discord.py 在消息中添加内容
- java - 使用图形时如何处理私人空白?
- arm - 现实世界的 DRAM 只写应用程序
- html - 是否可以在全屏 div 前面显示全屏 div 之外的 HTML 元素?
- python - 为什么画一个边框很厚的 PyGame 矩形会画一个加号呢?
- typo3 - TYPO3 创建帖子后重定向到 ShowAction
- r - 比较 Data.Frame 行中的单元格值 - 令人费解的输出
- django - 如何动态地将 django 对象添加到查询集中
- java - 收到此错误 --java.util.NoSuchElementException: No line found -- 在第 20,27 和 34 行
- marklogic - 无法在 MarkLogic SSO 的 URL 重写器中运行 XQuery 脚本