我有以下设置:
<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”-method提交表单也可以使用?
在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');
但是,不出所料,这给了我一个不尊重任何数组键的一维数组。所以并不是所寻求的结果。 (在课堂上乱哄哄似乎很奇怪。)
答案 0 :(得分:2)
按照您提供的示例,您可以使用&#39;匹配&#39;函数输入的名称以获取索引
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);
关于使用class作为选择器。如果使用JQuery,另一种方法是将所有输入元素包装在div或表单中,给它一个id(例如&#39; my_inputs&#39;),然后你就可以得到这样的输入:
var inputs = $('#my_inputs input');
答案 1 :(得分:0)
班级名称“myInput”在哪里? “myInput”不是类名,它是“name”属性的名称