在反应中获取动态输入值
Grab dynamic input value in react
这是我的表单视图:
这是我的动态输入表单代码:
...
let subJudulInput = []; // this variable will render
for (var i = 0; i < this.props.subtitleInput.index; i++) {
let index = i + 1;
subJudulInput.push(
<div key={'formgroup' + index} class="form-group">
{(i === 0) ? <label for="subJudulInput">Sub Judul</label>:false}
<input key={'input' + index} type="text" class="form-control" placeholder={`Masukan Sub Judul ${index}`}/>
</div>
);
}
...
如果我点击加号按钮,新的输入表单将显示:
这是我的表单处理程序:
onAddingTitle(event) { // if the submit button get pressed
let formData = {subJudul:[]};
event.preventDefault();
console.log(event.target.elements);
}
我如何获取所有动态输入值? (最佳方式) 形成数据对象;像这样:
let formData = {subJudul:[
'sub judul 1 value here',
'sub judul 2 value here',
'sub judul 3 value here',
'next new input'
]};
向文本字段添加 name
属性:name={"textbox-"+index}
试试下面的代码来获得你的期望值
onAddingTitle(event) {
event.preventDefault();
let formElements = event.target.elements;
let formData = {
subJudul: []
};
Object.keys(formElements).forEach((key) => {
if (formElements[key].type == 'text') {
formData.subJudul.push(formElements[key].value)
}
});
console.log('formData', formData);
}
解释:
- 获取表单元素(对象)
- 使用键遍历对象元素
- 检查字段的类型,如果是文本框(根据需要添加)将字段的值推送到数组。
这是我的表单视图:
这是我的动态输入表单代码:
...
let subJudulInput = []; // this variable will render
for (var i = 0; i < this.props.subtitleInput.index; i++) {
let index = i + 1;
subJudulInput.push(
<div key={'formgroup' + index} class="form-group">
{(i === 0) ? <label for="subJudulInput">Sub Judul</label>:false}
<input key={'input' + index} type="text" class="form-control" placeholder={`Masukan Sub Judul ${index}`}/>
</div>
);
}
...
如果我点击加号按钮,新的输入表单将显示:
这是我的表单处理程序:
onAddingTitle(event) { // if the submit button get pressed
let formData = {subJudul:[]};
event.preventDefault();
console.log(event.target.elements);
}
我如何获取所有动态输入值? (最佳方式) 形成数据对象;像这样:
let formData = {subJudul:[
'sub judul 1 value here',
'sub judul 2 value here',
'sub judul 3 value here',
'next new input'
]};
向文本字段添加 name
属性:name={"textbox-"+index}
试试下面的代码来获得你的期望值
onAddingTitle(event) {
event.preventDefault();
let formElements = event.target.elements;
let formData = {
subJudul: []
};
Object.keys(formElements).forEach((key) => {
if (formElements[key].type == 'text') {
formData.subJudul.push(formElements[key].value)
}
});
console.log('formData', formData);
}
解释:
- 获取表单元素(对象)
- 使用键遍历对象元素
- 检查字段的类型,如果是文本框(根据需要添加)将字段的值推送到数组。