我想知道是否可以将数组打印到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
这甚至可能吗?
提前做任何帮助:)
答案 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"/>