[英]Load array from dynamically created input fields
我有一個頁面,該頁面根據用戶選擇的創建數量來創建許多輸入:
select id="noOfDirectors" name="amount" onchange="addInput();">
<option value="">How Many Directors</option>
<option value="1" >1</option>
<option value="2" >2</option>
<option value="3" >3</option>
<option value="4" >4</option>
<option value="5" >5</option>
<option value="6" >6</option>
<option value="7" >7</option>
<option value="8" >8</option>
<option value="9" >9</option>
<option value="10" >10</option>
</select>
<div id="inputs"></div><br/>
<button id="nod" onclick="return false">Submit</button>
.js文件創建以下形式:
function addInput(){
noOfDirectors = $('#noOfDirectors').val();
var inputs = $('#inputs').empty();
inputs.innerHTML = "";
for(i = 0; i < noOfDirectors; i++) {
inputs.append('Director '+ (i+1) +' Name: <input type="text" name="directorName[' + i + ']" /><br/>Director '+ (i+1) +' Customer Number: <input type="text" name="directorECN['+i+']" /><br/><br/>');
}
$("#nod").show();
directors = $('[name^=directorECN]').map(function(i) {
//return this.name;
return this.value; // for real values of input
}).get();
}
$(document).ready(function() {
$('#nod').click(function() {
console.log(directors);
});
});
現在,我要獲取每個directorECN['+i+']
輸入名稱,並將它們添加到全局聲明的數組中:
var directors = new Array ();
我很難弄清楚一種語法,而無需對每個可能的輸入名稱進行10(0-9)硬編碼。 有沒有更簡單的方法可以做到這一點?
這是我更新的JSFiddle
更新了我上面的JS。 控制台正在打印[""]
您可以使用.map()從Attributes With Selector [name ^ =“ value”]返回的元素的name屬性中獲取數組。
var directors = $('[name^=directorECN]').map(function(i) {
//return this.name;
return this.value; // for real values of input
}).get();
對選擇器[attribute^="value"]
開頭的屬性使用.map()
函數
var directors = $('[name^="directorECN"]').map(function () {
return this.name //to get value use this.value
}).get();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.