0

我有三个单独的文本框,并且想要一个按钮,可以将框中的所有内容复制到第 4 个框中。我怎么能用javascript做到这一点?

<form>
<textarea cols="60" rows="5" id="box1">PAST: </textarea>
<br /><br />
<textarea cols="60" rows="5" id="box2">PRESENT: </textarea>
<br /><br />
<textarea cols="60" rows="5" id="box3">FUTURE: </textarea>

<br /><br />
<input name="" type="button" />
<br /><br />
<textarea cols="60" rows="5" id="box4">All Past Present Future</textarea>
</form>
4

5 回答 5

3

您只需提取 textarea 值 - 并将它们的串联作为此“聚合”textarea 的值。使用 jQuery 很容易做到,就像这样:

$('#button_id').click(function() {
  $('#box4').val(
    $('#box1').val() + $('#box2').val() + $('#box3').val()
  );
});
于 2012-07-17T20:58:30.987 回答
2

尝试这个:

$('button').click(function(){
    var text = "";
    $('textarea:not(:eq(3))').each(function(){
       text += this.value
    })
    $('textarea:eq(3)').val(text)    
})

演示

于 2012-07-17T20:59:40.110 回答
0

jsFiddle:http: //jsfiddle.net/wCPbY/3/

// Runs on document ready
$(document).ready(function()
{
    // Grabs each text in the textareas based on the id, added spaces in between.
    var text = $("#box1").text() + " " + $("#box2").text() + " " + $("#box3").text();

    // Appends the text to box4.
    $("#box4").text( text );
});​
于 2012-07-17T21:01:01.110 回答
0

您不需要像 jQuery 那样加载整个 JavaScript 库。试试这个简单的 JavaScript(为可扩展性而构建!)

var textboxes = document.getElementsByTagName('textarea'),
    box4 = document.getElementById('box4'),
    i;

for (i = 0; i < textboxes.length - 1; i++) {
    box4.value += textboxes[i].value;
}

这是你的jsFiddle

于 2012-07-17T21:36:11.753 回答
0

使用 jQuery,您可以创建一个选择器来捕获所有必需的元素。您可能希望更改您的 HTML 以提供匹配类属性的元素,以便选择器能够将它们组合在一起。

<textarea cols="60" rows="5" class="textGroup" id="box1">PAST: </textarea>
<textarea cols="60" rows="5" class="textGroup" id="box2">PRESENT: </textarea>
<textarea cols="60" rows="5" class="textGroup" id="box3">FUTURE: </textarea>
<textarea cols="60" rows="5" id="box4">All Past Present Future</textarea>

获取所有文本区域的选择器将是 - $(".textGroup")
现在我们要做的就是遍历所有这些,收集它们的内容并将其附加到主All Past Present Future文本区域。

var wholeString = '';
$(".textGroup").each(function(index,elem){
  wholeString += $(elem).text();
});

$("#box4").text(wholeSrting);
于 2012-07-17T21:01:15.640 回答