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

时间:2013-10-22 20:36:02

标签: php 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);

仅产生第一个输入,而不是数组。任何解决方案?提前谢谢......

3 个答案:

答案 0 :(得分:3)

使用.map()

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

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

此外,你有重复ID,停止! ID的必须才是唯一的。

答案 1 :(得分:1)

试试这个:

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

答案 2 :(得分:1)

我注意到的一些事情......

  1. 您的id应该是唯一的。在您的示例中,您具有相同ID的输入。
  2. HTML5中不推荐使用name属性,它应与ID相同。
  3. 我会做什么:改为上课。

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

    然后你就可以得到这样的数组:

    var myArray = $('.modify_album_title_input');