首页 > 解决方案 > 在提交时将多个输入值添加到 textarea

问题描述

我有几个输入字段,输入字段的数量因用户输入的输入字段而异。如果用户输入 1,则显示 20 个文本字段和 20 个电子邮件,如果输入 2,则显示 40 个文本字段和 40 个电子邮件字段,依此类推。在提交表单时,我需要将这些字段添加到用逗号分隔的 textarea 字段中。它与此处所做的类似:将<input> 值重新发布到 <textarea>但由于可能的字段数量众多,我无法将每个输入添加为变量。考虑到可能有这么多领域,有没有一种有效的方法来做到这一点?TIA。

<div id="sponsor">
    <input type="text">
    <input type="email">
</div>

<textarea></textarea>

标签: jquery

解决方案


我希望你们所有人都在idinput之下。divsponsor

  1. 所以你可以选择所有的inputswith selector $("#sponsor input")
  2. 用 获取它们的值.toArray().map(x => x.value)
  3. ,加入他们.join(",")
  4. 设置id为,textarea以便您可以为其分配值。

注意:如果您还有其他sponsor不应该包含的输入,那么您必须将类添加到您input想要包含的 s 并使用class选择器来获取列表。假设我们添加一个类input,然后使用$('.input')而不是$("#sponsor input").

你可以在下面测试它。

function submit() {
  var commaSeparatedValues = $("#sponsor input").toArray().map(x => x.value).join(",");      
  $("#list").val(commaSeparatedValues);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>

<div id="sponsor">
    <input type="text">
    <input type="email">
</div>

<textarea id="list"></textarea>
<input type="button" value="submit" onclick="submit()">


推荐阅读