javascript - 如何从输入数组中获取多维数组

标签 javascript arrays input multidimensional-array

我有以下设置:

<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/

相关文章:

javascript - 如果前面的函数失败,如何防止 jQuery 函数不运行?

php - 这个 POST 和 PHP 是否可以正常工作以获取输入并将其发布到主服务器?

Java如何从用户输入到方法搜索SQL

javascript - 移动版 Safari : Javascript focus() method on inputfield only works with click?

javascript - 如何通过变量 attr val 找到选择器

javascript - 在最后一页提交之前,我们如何跨不同页面存储多个字段值。

javascript - plotly.js 如何在悬停时更改 z 数据以在色标上显示 % 和 %

java - 如何将方法中的值存储到数组中?

java - 按字符串进入数组按字母顺序排序 java

python - 在 Python 中存储多个数组