首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从输入字段获取多个值,并将它们附加到新行中

从输入字段获取多个值,并将它们附加到新行中
EN

Stack Overflow用户
提问于 2019-09-18 08:52:47
回答 5查看 64关注 0票数 0

我有一个包含多个值并用逗号分隔的输入,当单击按钮时,我尝试获取输入值,并将逗号替换为空空间,并将每个值追加到新行<tr>中。

代码语言:javascript
复制
function PostForm() {

  var getVal = $("#Kundenummer").val().replace(/,/g, ''); //11548 10883

  $('#tablebody').append('<tr><td>' + getVal + '</td></tr>')

}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input name="Kundenummer" id="Kundenummer" value="11548, 10883,">
<button onclick="PostForm();" type="button">Save</button>
<table id="tablebody"></table>

但是,在获取输入值并将它们附加到表中之后,它将将这两个值放在一行中。

代码语言:javascript
复制
<table id="tablebody">
  <tbody id="output">
    <tr>
      <td>11548 10883</td>
    </tr>
  </tbody>
</table>

我想要的输出:

代码语言:javascript
复制
<table id="tablebody">
  <tbody id="output">
    <tr>
      <td>11548</td>
    </tr>
    <tr>
      <td>10883</td>
    </tr>
  </tbody>
</table>

有人能帮帮我吗!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2019-09-18 08:57:55

您正在用空格替换逗号,这将只返回字符串,相反,您可以用逗号分隔字符串,这将返回字符串数组,并迭代结果以创建表。

代码语言:javascript
复制
    function PostForm() {
    
    var getVal = $("#Kundenummer").val().split(',');
    
    for(var i=0; i<getVal.length; i++) {
        var val = getVal[i];
        val = val.trim();
        if(val!='') {
          $('#tablebody').append('<tr><td>' + getVal[i] + '</td></tr>');
        }
    }  
    
    }
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input name="Kundenummer" id="Kundenummer" value="11548, 10883,">
<button onclick="PostForm();" type="button">Save</button>
<table border='1'>
 <tbody id="tablebody">
 </tbody>
</table>

票数 1
EN

Stack Overflow用户

发布于 2019-09-18 09:00:23

首先,使用split将字符串转换为数组:

var getVal = $("#Kundenummer").val().replace(/,/g, '').split(" ");

然后,循环遍历数组中的元素,并追加一行和列:

getVal.forEach((e) => $("#tablebody").append(${e}));

完整片段:

代码语言:javascript
复制
function PostForm() {
  var getVal = $("#Kundenummer").val().replace(/,/g, '').split(" "); //11548 10883
  getVal.forEach((e) => $("#tablebody").append(`<tr><td>${e}</tr></td>`));
}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input name="Kundenummer" id="Kundenummer" value="11548, 10883,">
<button onclick="PostForm();" type="button">Save</button>
<table id="tablebody">
  <tbody id="output">

  </tbody>
</table>

票数 2
EN

Stack Overflow用户

发布于 2019-09-18 08:58:52

为了更有效地实现这一点,您需要通过split()字符将值传递到数组中。然后,您可以在数组上迭代,并为每个值构建一个新的表行,然后将内容追加到table中。

还请注意,on*属性已经过时,应尽可能避免。使用不显眼的事件处理程序。由于您已经在页面中加载了jQuery,所以可以使用on(),如下所示:

代码语言:javascript
复制
$(function() {
  $('button').on('click', function() {
    var values = $("#Kundenummer").val().split(',');
    var html = values.map(function(value) {
      return `<tr><td>${value}</td></tr>`;
    });
    $('#tablebody').append(html);
  });
});
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input name="Kundenummer" id="Kundenummer" value="11548, 10883">
<button type="button">Save</button>

<table>
  <tbody id="tablebody"></tbody>
</table>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57988772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档