我有循環雖然表單值,它工作很好,拋出基於輸入名稱的值。但我也希望能夠通過特定元素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