如何在jquery中读取输入二维数组值

How to read input two dimensional array value in jquery?

本文关键字:输入 二维数组 读取 jquery      更新时间:2023-09-26

我有一个表单可以在html中添加许多联系人,输入是二维数组,这是表单:

<input class="form-control" type="text" name="account[0][name]" placeholder="Name"  autocomplete="off" />
<input class="form-control" type="text" name="account[0][email]" placeholder="Email"  autocomplete="off" />
<input class="form-control" type="text" name="account[0][mobile]" placeholder="Mobile"  autocomplete="off" />
<input class="form-control" type="text" name="account[1][name]" placeholder="Name"  autocomplete="off" />
<input class="form-control" type="text" name="account[1][email]" placeholder="Email"  autocomplete="off" />
<input class="form-control" type="text" name="account[1][mobile]" placeholder="Mobile"  autocomplete="off" />

我正在尝试使用 jquery 获取值我尝试了以下内容,它返回值,但我想返回帐户名称或帐户电子邮件或帐户移动的输入值

 $('input[name^="account"]').each(function() {
                console.log($(this).val());
        });
这不是

value而是一个名为placeholder的属性,因此您应该改用.attr()方法:
console.log($(this).attr('placeholder'));

但是我想返回帐户名称或帐户电子邮件或帐户移动的输入值

,您可以使用.serializeArray();

$('pre').html(JSON.stringify($('.form-control').serializeArray(), 0, 3));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<pre></pre>
<input class="form-control" type="text" name="account[0][name]" placeholder="Name"  autocomplete="off" />
<input class="form-control" type="text" name="account[0][email]" placeholder="Email"  autocomplete="off" />
<input class="form-control" type="text" name="account[0][mobile]" placeholder="Mobile"  autocomplete="off" />
<input class="form-control" type="text" name="account[1][name]" placeholder="Name"  autocomplete="off" />
<input class="form-control" type="text" name="account[1][email]" placeholder="Email"  autocomplete="off" />
<input class="form-control" type="text" name="account[1][mobile]" placeholder="Mobile"  autocomplete="off" />

您可以使用属性选择器的开头和结尾:

$('[name^="account"][name$="[name]"]')

将选择名称以 account 开头并以 [name] 结尾的所有元素。

试试这个。

$('input[name^="account"]').each(function() {
  alert($(this).val());
});
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<input class="form-control" type="text" value="test" name="account[0][name]" placeholder="Name" autocomplete="off" />
<input class="form-control" type="text" value="test@gmail.com" name="account[0][email]" placeholder="Email" autocomplete="off" />
<input class="form-control" type="text" value="1234568790" name="account[0][mobile]" placeholder="Mobile" autocomplete="off" />
<input class="form-control" type="text" value="test2" name="account[1][name]" placeholder="Name" autocomplete="off" />
<input class="form-control" type="text" value="test2@gmail.com" name="account[1][email]" placeholder="Email" autocomplete="off" />
<input class="form-control" type="text" value="3216549870" name="account[1][mobile]" placeholder="Mobile" autocomplete="off" />