将一个textarea的内容保存在另一个textarea中

时间:2013-07-21 21:05:15

标签: jquery forms textarea

我有一个简单的表单,用户将文本放入各个字段,并在按钮单击时将结果汇总到textarea(#1)中。

我还添加了一个<input type=reset>来清除表单和第一个textarea。

我想添加第二个textarea,在每次点击后按顺序“保存”第一个textarea中的项目,最好是在数字列表中。似乎很容易做到,但我只能使用javascript复制两个textareas。

我很感激任何帮助!

HTML

<input id="bl_pct" size="5" value="0" type="text"><br>
<input id="seg_pct" size="5" value="0" type="text"><br>
<input id="lym_pct" size="5" value="0" type="text"><br>
<div class="textoutput">
    <form>
        <input id="print" value="Click to print " type="button"><br>
        <textarea id="diffOut" rows="5" cols="60"></textarea>
        <input class="btn" type="reset" value="Reset the counter"><br>
    </form>
</div>

JS

$('#print').on('click', function (){
  // setting field variables
    var blst = $('#bl_pct').val();
    var seg = $('#seg_pct').val();
    var lym = $('#lym_pct').val();
    var Str = 'Output here: '+blst+' ; '+seg+' ; '+lym+'.';
    $('#diffOut').val(Str);
 });

这是一个小提琴:http://jsfiddle.net/sZYYK/

1 个答案:

答案 0 :(得分:1)

将此添加到点击事件的结尾

$('#diffHist').val($('#diffHist').val() + Str + '\n');

将添加'diffHist'包含的内容,添加当前的Str值和换行符'\ n'。

如果你想对这些行进行编号,那么每次都要创建一个变量并将其递增,然后以类似的方式将其附加到文本中(使用+)。

如果您想要相反的行,请使用:

$('#diffHist').val(Str + '\n' + $('#diffHist').val());

使用计数器对条目进行编号:

$('#print').on('click', function (){
  // setting global field variables
    this.counter = this.counter || 0;
    this.counter++;
    var blst = $('#bl_pct').val();
    var seg = $('#seg_pct').val();
    var lym = $('#lym_pct').val();
    var Str = 'Output here: '+blst+' ; '+seg+' ; '+lym+'.';
    $('#diffOut').val(Str);
    $('#diffHist').val($('#diffHist').val() + this.counter + ' ' + Str + '\n');
 });

BTW这些变量不是全局变量,因此您可以编辑注释;它们是局部变量。 (counter不是局部变量,它是附加到输入元素的属性。)