jquery数组到字符串以显示文本框输入

时间:2017-08-10 07:19:25

标签: javascript php jquery arrays laravel

我试图输出与test变量关联的数组:

            $(document).on('click','#btnSubmit', function(){
                var test = $("input[name*='i_name']");                   
                $(test).each(function(i, item){
                    var sample = [];
                    sample.push($(item).val());

                });                 
            });

并显示我在文本框中输入的所有数据:

<input type="text" id="test" name="test[]">

我将如何做到这一点?我试过JSON.stringify.join,但它只显示数组的最后一个索引。请帮助我。

4 个答案:

答案 0 :(得分:4)

您正在每次迭代中重置样本数组,从循环中删除变量声明。

$(document).on('click','#btnSubmit', function() {
    var test = $("input[name*='i_name']");
    var sample = [];    // <-- Define sample variable here
    $(test).each(function(i, item){
        sample.push($(item).val());
    });

    console.log(sample.join(", "));
});

答案 1 :(得分:0)

在click函数的全局变量中声明sample数组,而不是each函数。因为每个时间循环都会重置数组。这就是为什么它只有最后一个元素值

 $(document).on('click','#btnSubmit', function(){
          var sample = [];
                var test = $("input[name*='i_name']");                   
                $(test).each(function(i, item){
                    sample.push($(item).val());

                });                 
            });

答案 2 :(得分:0)

$(document).on('click','#btnSubmit', function(){
                var sample = [];
                var test = $("input[name*='i_name']");                   
                test.each(function(i, item){

                    sample.push($(item).val());

                });                 
            });
  

我想......我应该改变$(test)=&gt;测试

答案 3 :(得分:0)

只需更新值即可将数组输出到input框。

在您的代码中,您的sample变量每次都更新为空数组[],因此它只存储最新值。

&#13;
&#13;
const text = ['1','2','3','4','5'];

$("#test").val(text.join(''));
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<input type="text" id="test" />
&#13;
&#13;
&#13;