javascript - 将动态创建的输入中的值复制到文本区域

标签 javascript jquery

我有 3 列的引导行。每列都有输入。我有“添加行”按钮,它添加另一行 3 列。每个输入值都复制到文本区域。但我有问题。我只能从第一行复制值。如何从所有输入复制值?第二个问题,我怎样才能像这样格式化输出

第 1 行 数据-1 数据-2 数据-3

第2行 数据-4 数据5 数据-6

<div class="container">
<div class="row inputs">
    <div class="col-sm-4">
        <input type="text" name="szerokosc" class="entry" id="szerokosc_1" value="" />
    </div>
    <div class="col-sm-4">
        <input type="text" name="wysokosc" class="entry" id="wysokosc_1" value="" />
    </div>
    <div class="col-sm-4">
        <input type="text" name="dlugosc" class="entry" id="dlugosc_1" value="" />
    </div>
</div>
<div class="row">
    <div class="col-sm-12">
        <button id="add">add row</button>
    </div>
</div>
</div>
<textarea class="box" name="result" rows="5"> </textarea>

$('#add').click(function(){
$('.row.inputs:last').clone().insertAfter(".row.inputs:last").val('');
});
$("input").on('keyup',function() {
    var values = "";
    $("input:text").each(function(i) {
        var text=$(this).prev("label").text();
        values +=  (i > 0 ? "\n" : "") + this.value+ " "+text;
    });
    $("textarea").val(values);
});

最佳答案

这是您要找的吗?

否,要使新添加的输入也触发我们的 keyup,请将 $("input").on('keyup', function() { 更改为 $(document).on('keyup', "input", function() {

$('#add').click(function() {
  $('.row.inputs:last').clone().insertAfter(".row.inputs:last");
  $('.row.inputs:last input').val("")
  console.log($(".row.inputs").length)
  if ($(".row.inputs").length == 2){
  $('.row.inputs:last .col-sm-4:last').css("float","left").after('<div><button style="margin-left: 20px" class="removeRow">remove row</button></div>')
  } 
    
});
$(document).on('keyup', "input", function() {
  updateTextarea()
});

$(document).on('click', ".removeText", function() {
  $(this).prev("input").val("")
  updateTextarea()
});

$(document).on('click', ".removeRow", function() {
  $(this).closest(".row").remove()
  updateTextarea()
});

function updateTextarea() {
  var values = "";
  $(".row.inputs").each(function(i) {
    values += "row" + (i + 1) + ": "
    $(this).find("input").each(function(x, e) {
      $(this).next("button").css("display", this.value.length > 0 ? "initial": "none")
      var text = $(this).prev("label").text();
      values += this.value + " " + text;
    })

    values += "\n"
  });
  $("textarea").val(values);
}
textarea {
  height: 200px;
  width: 400px;
}

.removeText{display:none;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
  <div class="row inputs">
    <div class="col-sm-4">
      <input type="text" name="szerokosc" class="entry" id="szerokosc_1" value="" /><button class="removeText">remove text</button>
    </div>
    <div class="col-sm-4">
      <input type="text" name="wysokosc" class="entry" id="wysokosc_1" value="" /><button class="removeText">remove text</button>
    </div>
    <div class="col-sm-4">
      <input type="text" name="dlugosc" class="entry" id="dlugosc_1" value="" /><button class="removeText">remove text</button>
    </div>
  </div>
  <div class="row">
    <div class="col-sm-12">
      <button id="add">add row</button>
    </div>
  </div>

  <textarea row="10"></textarea>

关于javascript - 将动态创建的输入中的值复制到文本区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45433302/

相关文章:

javascript - 如何统计字符串中所有大写字符的个数?

javascript - CSS 菜单 - 点击时的子菜单 (JS)

javascript - 正则表达式匹配 - Javascript

php - 倒数计时器获取 jquery 的值

javascript - 如何使用 CSS 将 HTML 元素放置在另一个元素之上

javascript - 如何在动画/过渡中间暂停

javascript - jQuery 的 jsfiddle 示例不适用于 jQuery 代码

javascript - React-Redux 如何知道要传递什么存储片段?

javascript - 使用 moment.js 格式化现有的日期变量

javascript - 如何使 jQuery 中的悬停功能单独应用于数据库图像?