根据用户输入的输入创建数组

时间:2015-06-01 13:29:29

标签: javascript jquery html arrays

我有表/表单,其中长度是动态的(用户可以添加/删除行)。我想创建一个包含用户输入值的数组onsubmit,并使用console.log来显示数组值以及数组的长度。

HTML

<div class="container">
  <form id="online1" action="#">
    <table class="table" id="tblData">
        <thead>
            <tr>
                <th>Youtube ID</th>
                <th>Add/Delete</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>
                    <input type="text" class="form-control song-input" placeholder="5YCcad6hklE" />
                </td>
                <td>
                    <button type="button" class="btn btn-default btn-add">Add</button>
                </td>
            </tr>
            <tr>
                <td>
                    <input type="text" class="form-control" placeholder="t6Lr8ggJWi4" />
                </td>
                <td>
                    <button type="button" class="btn btn-danger btn-del">Del</button>
                </td>
            </tr>
            <tr>
                <td>
                    <input type="text" class="form-control" placeholder="YmzfaapaPMA" />
                </td>
                <td>
                    <button type="button" class="btn btn-danger btn-del">Del</button>
                </td>
            </tr>
        </tbody>
    </table>
    <button type="button" class="btn btn-primary">Submit</button>
    </form>

的jQuery

jQuery(".btn-primary").click(function(){


var values = [];
$('.yt-mix').each(function() {
    values[this.name] = this.value;
});
    var mix_size = values.length;
    console.log(values); // "5YCcad6hklE", "t6Lr8ggJWi4", "YmzfaapaPMA" 
    console.log(mix_size); // 3 rows
});

使用这个小提琴http://jsfiddle.net/1jmjdxLL/

2 个答案:

答案 0 :(得分:4)

您可以使用each循环遍历所有文本框。 :text伪选择器选择所有文本框。

$(document).ready(function() {
    $(document).on('click', '.btn-primary', function() {
        var values = [];
        $('#tblData :text').each(function() {
            if ($(this).val()) {
                values.push($(this).val());
            }
        });

        console.log(values);
        console.log(values.length);
    });
});

演示:https://jsfiddle.net/tusharj/1jmjdxLL/1/

答案 1 :(得分:2)

$(".btn-primary").click(function(){

    var values = [];
    $('#tblData input').each(function() {
        values.push($(this).val());
    });
    var mix_size = values.length;
    console.log(values); // "5YCcad6hklE", "t6Lr8ggJWi4", "YmzfaapaPMA" 
    console.log(mix_size); // 3 rows
});