这是我的 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/