反应表格动态输入字段

时间:2019-01-07 02:56:46

标签: reactjs forms

我正在尝试创建具有多个(动态)输入字段的反应形式。输入被分组在一起,如下图所示。

enter image description here

当用户提交表单时,我需要获取从每个组中选择的值。使用map函数动态生成组。我在这个话题上没有发现太多。

我现有的代码:

<form onSubmit={this.handleSubmit.bind(this)}>
  <div className="container">
    {this.state.food.options.map((food, i) =>
      <div key={i}>
        <h5 style={{marginBottom: 2}}><b>{food.name}</b></h5><br />
          <div>
            {food.options.map((option, k) =>
              <div className="row" key={k}>
                <div className="col-3" style={{flex: '0 0 10%'}}>
                  <input type="radio" name={option.name} value={option.id} style={{height: 20}} />
                </div>
                <div className="col-3">
                  <span style={{paddingTop: 10, fontSize: 12}}>{option.name}</span>
                </div>
              </div>
              )}
            </div>
            <hr />
          </div>
          )}
      </div>
    </form>

1 个答案:

答案 0 :(得分:1)

您必须改为使用checked属性

然后将onChange事件用于选择optionID

<input 
type="radio" 
name={option.name} 
value={option.id} 
style={{height: 20}}  
checked={this.state.optionId[option.name] === option.id}
onChange(this.handleChange)
/>


handleChange = e => {
    this.setState({
      optionId: e.target.value
      });
}