如果输入不是js中的有效日期,如何连接/更改错误消息?

时间:2015-10-10 08:10:24

标签: javascript jquery arrays loops

我试了近两天但仍然没有。也许有人可以帮助谁在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未显示警告框:

   Group 2:
   Number is required!
   Date is required!

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

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

如果日期不是真正的日期:

  Group 1, 2 Date is invalid.

如果其中一个输入无效。

  Group 2 Date is invalid.

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

这是我的 FIDDLE

1 个答案:

答案 0 :(得分:0)

我认为你正在寻找像jquery-validate这样的东西。我很确定它带有一个原生日期验证器,但是如果你想要一个更具体的格式,你可以把一个正则表达式放入其中。