javascript - 当元素为空时从数组元素中删除逗号

标签 javascript jquery html

这是我的 HTML

<input type="text" class="date_of_birth" name="date[]" value="" onkeyup="dateOfBirth('stepbirth')">
<input type="text" class="date_of_birth" name="date[]" value="" onkeyup="dateOfBirth('stepbirth')">

这是我的 javascript,用于收集每个元素的值。

var DoB = []; 
  $(".date_of_birth").each(function(){
      DoB.push($(this).val());
  });

  var newDob = DoB.slice(0,-1);

  var stepVar = newDob;

工作正常。当有更多值时,它会发送这样的值

2002年2月20日,2003年3月3日

这很好。但是问题是我在每个输入字段上都有键盘事件。当用户填写两个字段时,如果从一个字段中删除数据,那么它会发送这样的值..

20/02/2002,

所以我的脚本在这里停止验证,因为它需要像这样的值的逗号

20/02/2002,03/03/2003 

20/02/2002

如何删除此处的逗号,直到输入为空。

谢谢

最佳答案

不要删除逗号,而是从源头上解决问题。原因是即使该值为空,您也始终将值推送到数组。要解决此问题,请在调用 push() 之前检查该值。

var DoB = []; 
$(".date_of_birth").each(function() {
  var value = $(this).val().trim();
  if (value.length)
    DoB.push($(this).val());
});

或者,您可以使用 map() 使其更加简洁。如果返回null,则该元素将不会添加到数组中。

var DoB = $(".date_of_birth").map(function() {
  return $(this).val().trim() || null;
});

关于javascript - 当元素为空时从数组元素中删除逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57307507/

相关文章:

IE 和 Microsoft Edge 中的 jQuery 轮播页面移动

javascript - 保存在 Canvas 上绘制的图像

html - 如何在seam中格式化句子

javascript - Jquery 无法从 Django 生成的元素中获取 ID

javascript - 有什么方法可以在 HTML 页面中显示 HTML 代码

javascript - jQuery 周期 2 : pause slideshow on click

javascript - Jquery 确定有效 DPI 来缩放 Canvas 中的图像

html - 在 SVG 中悬停在多边形上时显示文本

javascript - 模式转化为数组

javascript - 如何禁用 div 和 div 中的所有元素?