我有循环虽然表单值,它工作很好,抛出基于输入名称的值。但我也希望能够通过特定元素ID进行定位。按名称的JavaScript循环窗体的值,然后元素ID
这是一个例子形式:
_inputFields: function() {
var rows = [];
for(var i = 1; i <= 12; i++) {
var placeHolder = 'Intro text line ' + i;
var inputID = 'inputIntroText ' + i;
rows.push(<input type="text" className="form-control input-size-lg" name="formInput" id="inputText" placeholder={placeHolder}/>);
rows.push(<input type="text" className="form-control input-size-lg" name="formInput" id="inputTime" placeholder={placeHolder}/>);
}
这样我就可以循环并抓住按名称即为“的formInput”但一切怎么能我然后抓住formInput[inputText]
和formInput[inputTime]
?
这是一个通过值我目前的循环:
// gather form input
var elem = document.getElementsByName('formInput');
console.log(elem);
// Build the object
var obj = {
"DataObject": {
"user": {
"-name": "username"
},
"contentFile": {
"-filename": "Breaking_News",
"lock": {
"-fileIsBeingEdited": "false"
},
"content": {
"line": []
}
}
}
};
var line = obj.DataObject.contentFile.content.line;
for (var i = 0; i < elem.length; i++) {
if (elem[i].value != '') {
line.push({
"-index": i,
"-text": elem[i]['inputText'].value,
"-time": elem[i]['inputTime'].value
});
}
};
如果我尝试:
"-text": elem[i]['inputText'].value,
"-time": elem[i]['inputTime'].value
我得到的错误:Cannot read property 'value' of undefined
你可以创建一个小提琴吗? – optic
只需使用'“-text”:elem [i] .id' –
您的逻辑错误。当你执行'document.getElementsByName('formInput');'时,你会得到两个输入元素具有相同的名称和不同的ID。为什么你以后想在一次迭代中访问这两个?解释器是正确的告诉你'不能读取未定义的属性'值',因为你尝试访问的索引不存在于你elems数组中 – kennasoft