Hii,我是React Js的新手,在选择count InputCount
之后,我已经动态生成了输入字段。现在,我想获取输入字段的值,并且还要验证所有字段。
import React, { Component } from 'react';
class App extends Component {
constructor(props) {
super(props);
this.onChangeCount = this.onChangeCount.bind(this);
this.onSubmit = this.onSubmit.bind(this);
this.state = {,
InputCount: "",
}
}
onChangeCount(e) {
this.setState({
InputCount: e.target.value,
})
}
render() {
let options1 = []
for (let j = 0; j <= this.state.InputCount; j += 1) { options1.push(j); }
return (
{this.state.InputCount && (
options1.map((i) => {
return (<div>
<input type="text" name="name" placeholder="Name" /><br />
<input type="text" name="name" placeholder="RollNumber" />
</div>)
})
)}
请帮助我从输入字段中获取价值并验证表格。
答案 0 :(得分:0)
现在我想获取输入字段的值
要分别处理每个字段,您需要对它们全部进行唯一命名。因此,您的JSX字段必须为每个字段都拥有一个独特的name
属性:
options1.map((i) => {
return (<div>
<input type="text" name="name-{ i }" placeholder="Name" /><br />
<input type="text" name="rollnumber-{ i }" placeholder="RollNumber" />
</div>)
})
现在,每个input
元素都将具有该元素唯一的name
属性。假设options1
包含值0到2:
您将通过interrogating the field by its name
attribute获得该字段的值。
答案 1 :(得分:0)
名称输入字段通过与循环索引结合而唯一。
并且不要忘记在key
项目时使用map
。
class App extends React.Component {
constructor(props) {
super(props);
this.onChangeCount = this.onChangeCount.bind(this);
this.onSubmit = this.onSubmit.bind(this);
this.state = {
InputCount: 2,
}
}
onChangeCount(e) {
this.setState({InputCount: e.target.value })
}
handleChange = (e) => {
console.log('name: ', e.target.name, ' value:', e.target.value)
// Do what you want here
}
render() {
let options1 = []
for (let j = 0; j <= this.state.InputCount; j += 1) { options1.push(j) }
return (
<div>
{options1.map((i) => {
return (
<div key={`group-input-${i}`}>
<input onChange={this.handleChange} type="text" name={`${i}-name`} placeholder="Name" /><br />
<input onChange={this.handleChange} type="text" name={`${i}-rollNumber`} placeholder="RollNumber" />
</div>
)})}
</div>
)}}