0

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

我还添加了一个<input type=reset>清除表单和第一个文本区域。

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

我将不胜感激任何帮助!

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/

4

1 回答 1

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');
 });

顺便说一句,这些变量不是全局变量,因此您可以编辑评论;它们是局部变量。(counter不是局部变量,它是附加到输入元素的属性。)

于 2013-07-21T21:11:07.910 回答