textarea

时间:2016-11-25 16:38:36

标签: javascript jquery arrays

我想知道是否可以将数组打印到textarea中,并且在每第4行(在数组或textarea中)之后放置换行符或-----之类的内容。

在下面的示例中,我在表单中有一些输入fioelds,需要放在textarea中。然后提交此textarea。 '原因是我使用SaaS平台,所以我需要解决这个问题。

所以我拥有的是:

  $('.req').on('click', function(){

  var data = [];
  $('.table input').each(function() {
    data.push($(this).val());
  });

  var textarea = document.getElementById("form-message");
  textarea.value = data.join("\n");

  });

结果我得到了

21546
Some name
150
12345
Some name
555
54646
Some name
578

如何将其打印出来:

21546
Some name
150
----------------
12345
Some name
555
----------------
54646
Some name
578

这甚至可能吗?

提前做任何帮助:)

3 个答案:

答案 0 :(得分:1)

这是一个快速解决方案

   $('.req').on('click', function(){

      var data = [];
      $('.table input').each(function(index) {        
        data.push($(this).val());
        if((index+1)%3===0) {
          data.push("-----------------");
        }
      });

      var textarea = document.getElementById("form-message");
      textarea.value = data.join("\n");

    }); 

使用.each()返回的索引值和if((index+1)%3 === 0)中的模数,您可以非常轻松地每三行添加一个额外的条目。每n行使用%n。

这是一个显示解决方案的小提琴: https://jsfiddle.net/055074yu/

答案 1 :(得分:0)

一种可能的解决方案可能是:

$('.table input').each(function() {
  data.push($(this).val());
  if ((data.length + 1) % 4 === 0) {
    data.push('----------------');
  }
});

好的,我终于做出了Fiddle

答案 2 :(得分:0)

使用此fiddle。它可能有所帮助!

JS:

$('.req').on('click', function(){

  var data = [];
  $('.table.input').each(function(i) {
  if((i+1)%3)
  data.push($(this).val());  
  else
  {
   data.push($(this).val());
   data.push("-------------");
  }
  });

  var textarea = document.getElementById("form-message");
  textarea.value = data.join("\n");

  });

HTML:

<div>
<textarea id="form-message"></textarea>
</div>

<input type="text" class="table input"/>
<input type="text" class="table input"/>
<input type="text" class="table input"/>
<input type="text" class="table input"/>
<input type="text" class="table input"/>
<input type="text" class="table input"/>
<input class="req" type="button" value="button"/>