我有以下设置:
<input name="myInput[3][0]" type="text">
<input name="myInput[3][1]" type="text">
<input name="myInput[4][0]" type="text">
<input name="myInput[4][1]" type="text">
使用 php,在提交表单后访问这些值非常容易。例如,使用“post”方法,输入值存储在多维数组 $_POST['myInput']
中。然后可以使用 $_POST['myInput'][3][0]
访问每个维度中的第一个元素。
JavaScript 中是否有类似的功能,即使不通过“post”方法提交表单也可以使用?
已关注 JavaScript - get value from multiple inputs in an array ,我向每个 input
元素添加了一个名为“myInput”的类,例如
<input name="myInput[3][0]" type="text" class="myInput">
然后我尝试了这个:
var myInput= document.getElementsByClassName('myInput');
但是,毫不奇怪,这只给了我一个一维数组,不考虑任何数组键。所以这并不完全是所寻求的结果。 (而且摆弄类似乎很奇怪。)
最佳答案
按照您提供的示例,您可以在输入名称上使用“match”函数来获取索引
m = inputs[i].name.match(/\[(\d+)\]\[(\d+)\]/);
提供了完整的工作示例 here (jsfiddle)
var inputs = document.getElementsByClassName( 'webcampics' ),
res = {}, i;
for (i=0; i<inputs.length; i++){
m = inputs[i].name.match(/\[(\d+)\]\[(\d+)\]/);
if(!res[m[1]]){
res[m[1]] = {};
}
res[m[1]][m[2] ]= inputs[i].value;
}
console.log(res);
关于使用类作为选择器。如果使用 JQuery,另一种方法是将所有输入元素包装在 div 或表单中,给它一个 id(例如“my_inputs”),然后您可以获得如下输入:
var inputs = $('#my_inputs input');
关于javascript - 如何从输入数组中获取多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23320851/