通过 jQuery 获取动态创建的输入的数组值


get array value of dynamically created inputs by jquery

这是一个简单的代码

<?php for($i=0; $i<5; $i++){ ?>
    <input type="text" id="modify_album_title_input" name="modify_album_title_input[]" value="" required=""/>
<?php } ?>

我可以很容易地通过 php 以数组的形式获取值。但是如何通过jquery获取值呢?我已经用过这个了...

alert($("input[name='modify_album_title_input']").val());

结果为"未定义"而这...

var input_array= $("input[name='modify_album_title_input[]']").val();
alert(input_array);

仅结果是第一个输入,而不是数组。有什么解决方案吗?提前感谢...

使用 .map()

var input_array= $("input[name='modify_album_title_input[]']").map(function() {
    return this.value;
}).get();

它只返回代码中的第一个值,因为该选择器会抓取元素集合,并且只需尝试.val()获取第一个值。 map()将从指定的选择器生成一个漂亮的值数组。

另外,你有重复的ID,停止那个!ID 必须是唯一的。

试试这个:

var arr = new Array();
$("input[name^='modify_album_title_input']").each(function(index){
    arr.push($(this).val());
});

我注意到的几件事...

  1. 您的id应该是独一无二的。在您的示例中,您具有具有相同 ID 的输入。
  2. name属性在HTML5中已弃用,它应该与ID相同。

在这里我要做的是:改为上课。

<?php for($i=0; $i<5; $i++){ ?>
    <input type="text" class="modify_album_title_input" value="" required=""/>
<?php } ?>

然后,您将能够像这样获取数组:

var myArray = $('.modify_album_title_input');