如何连接/更改错误信息,如果输入不是一个有效的日期在js

How to concatenate/change the error message if the input is not a valid date in js?

本文关键字:一个 js 日期 输入 有效 连接 何连接 信息 错误 如果      更新时间:2023-09-26

我试了将近两天,但仍然一无所获。也许有人可以帮助谁是高度熟练的javascript循环。

我之前问过这个问题,并更改了一些代码,但仍然没有显示预期的数据。还在为这个奋斗。

我有这样的代码:

$(function(){
var len = $('#groupContainer > div').length;
var data = [];
for(var i=0; i < len; i++){
    var number = $('#number_' + [i + 1]);
    var date = $('#date_' + [i + 1]);
    var count = i + 1;
    var message ="";
    var a = number.map(function(){
        return this.value;
    });
    var b = date.map(function(){
        return this.value;
    });
    var newObj = {number: a[0], date: b[0]}
    data.push(newObj);
}
var message = "";
for(var c = 0; c < data.length; c++)
{        
    haveErrorInGroup = false;
    for(var d in data[c])
    {
        if(data[c].hasOwnProperty(d))
        {      
            if(data[c][d] == "")
            {
                if(!haveErrorInGroup){
                    haveErrorInGroup= true;
                   message += 'Group: ' + [c + 1] + ''n';
                }
                message +=  d + ' is required!'n';
            }
            if(d == "date")
            {
                if(data[c][d].length != 22 && data[c][d] != "")
                {
                    message += 'Invalid Date!'n';
                }
            }
        }
    }

}
if(message){
    alert(message);
}
});

期望输出:

如果组1中的所有字段都已填写,而组2没有显示alertbox:

   Group 2:
   Number is required!
   Date is required!

如果所有字段都未填写,则显示:

   Group 1, 2 Number is required!
   Group 1, 2 Date is required!

如果date不是真正的日期:

  Group 1, 2 Date is invalid.

如果其中一个输入无效。

  Group 2 Date is invalid.

如果所有字段都已填满,则不执行任何操作。

这是我的FIDDLE

我想你正在寻找类似jquery-validate的东西。我很确定它自带一个原生日期验证器,但如果你想要更具体的格式,你可以放一个正则表达式进去。