如何使用jQuery获取输入字段名称作为数组

时间:2018-10-23 18:23:10

标签: jquery

我有输入字段,

<input id="member_name" type="text" name="member[$counter]" />
<input id="member_position" type="text" name="position[$counter]"  />
<input id="gender" value="Male" name="gender[$counter]" type="radio" / >
<input id="gender" value="Female" name="gender[$counter]" type="radio" />

我正在使用jquery来获取值,

var member_name = [];
    $("input[name='member[$counter]']").each(function ()
    {
        member_name.push($(this).val());
    });

    console.log(member_name);

    var member_position = [];
    $("input[name='position[$counter]']").each(function ()
    {
        member_position.push($(this).val());
    });

    console.log(member_position);

    var gender = [];
    $("input[name='gender[$counter]']:checked").each(function ()
    {
        gender.push($(this).val());
    });       

    console.log(gender);

所有console.logs仅返回“ []”该值。我错过了什么?谢谢

1 个答案:

答案 0 :(得分:0)

如果要获取选中的单选按钮列表,则必须首先“选中”一个。在这里,我将第一个单选按钮“选中”:

<input id="gender" value="Male" name="gender[$counter]" type="radio" checked="true" / >
<input id="gender" value="Female" name="gender[$counter]" type="radio" />

现在,您的数组将包含第一个单选按钮。

如果您希望将所有单选按钮组成一个数组,那么您的JQuery应该如下所示:

var gender = [];
$("input[name='gender\\[$counter\\]']").each(function ()
{
    gender.push($(this).val());
});       

console.log(gender);

Edit

我添加了双转义的属性名称(因为如果JQuery包含文字Square brackets,则会误读该字符串。