Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从动态创建的输入字段加载数组_Javascript_Jquery_Arrays - Fatal编程技术网

Javascript 从动态创建的输入字段加载数组

Javascript 从动态创建的输入字段加载数组,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有一个页面,该页面根据用户选择的要创建的数量来创建大量输入: select id="noOfDirectors" name="amount" onchange="addInput();"> <option value="">How Many Directors</option> <option value="1" >1</option> <option value="2" >2</option&g

我有一个页面,该页面根据用户选择的要创建的数量来创建大量输入:

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控制器=新阵列

我很难找到一种语法,这种语法不需要对每个可能的输入名称进行10 0-9的硬编码。有没有更简单的方法

这是我的

上面更新了我的JS。Console正在打印[]

您可以使用从返回的元素的name属性获取数组

可以使用从返回的元素的name属性获取数组

属性上的Use.map函数以选择器[attribute^=value]开始

属性上的Use.map函数以选择器[attribute^=value]开始


别忘了,到最后。它将返回纯JS数组而不是jQuery集合对象input@A.Wolff,我认为OP已经定义了全局var directors=new Array;。但还是在函数中使用var控制器。[]返回的是全局变量。@jpgerb,从var控制器中删除var=…映射到函数内部。@jpgerb您知道,您应该在提交单击事件时调用它,否则,没有输入填充值:顺便说一句,需要修复JSFIDLE使其工作。现在,你仍然没有真正解释你期望的行为是什么,得到名字还是价值?!最后,我还是很确定你只是想序列化表单别忘了。最后。它将返回纯JS数组而不是jQuery集合对象input@A.Wolff,我认为OP已经定义了全局var directors=new Array;。但还是在函数中使用var控制器。[]返回的是全局变量。@jpgerb,从var控制器中删除var=…映射到函数内部。@jpgerb您知道,您应该在提交单击事件时调用它,否则,没有输入填充值:顺便说一句,需要修复JSFIDLE使其工作。现在,你仍然没有真正解释你期望的行为是什么,得到名字还是价值?!最后,我仍然很确定你只是想序列化表单你没有解释为什么需要它,但听起来你只是想序列化表单,请看:或者在代码的后面,我需要在对输入排序后的不同时间列出。你没有解释为什么需要它,但听起来您只是想序列化表单,请参见:或者在代码的后面,我需要在对输入排序后的不同时间列出。@A.Wolff,答案没有返回实际的名称数组,我仍然会问,我应该删除我的吗?我不是mod,但我认为这没问题then@A.Wolff,答案没有返回实际的名称数组,即,我还是会问,我应该把我的拿走吗?我不是mod,但我想那没关系
var directors = $('[name^=directorECN]').map(function(i) {
  //return this.name;
  return this.value; // for real values of input
}).get();
var directors = $('[name^="directorECN"]').map(function () {
    return this.name     //to get value use this.value
}).get();