确保日期可以添加到过去

Ensuring date can be added in past

本文关键字:过去 添加 日期 确保      更新时间:2023-09-26

我可以对这段代码做些什么来确保它可以允许在过去和将来添加缺勤?每当我试图添加过去的东西时,它似乎仍然要给我错误,我不能添加过去的缺席。我甚至不知道如何编写代码来确保它可以,或者删除哪位。我知道有一点代码不允许我这样做,但我不确定要删除哪位和什么。我不是非常熟练的JavaScript,但它是在我的项目,我不确定用它做什么。

dateValid: function () {
    var s = $(this).val();
    if ($(this).required()) {
        var date = new Date(s);
        if (!isNaN(date)) {
            if (date >= Date.parse(new Date().toDateString())) {
                $(this).removeClass("error");
                return true;
            }
            else {
                validation.showError("Past", $(this).attr("name"));
                $(this).addClass("error");
                return false;
            }
        }
        else {
            validation.showError("Invalid", $(this).attr("name"));
            $(this).addClass("error");
            return false;
        }
    }
    else return false;
},
dateRangeValid: function (toDate) {
    var s = $(this).val();
    if ($(this).required()) {
        if (toDate.required()) {
            var dateFrom = new Date(s);
            var dateTo = new Date(toDate.val());
            if (!isNaN(dateFrom) && !isNaN(dateTo)) {
                if (dateTo >= dateFrom) {
                    if (dateFrom >= Date.parse(new Date().toDateString())) {
                        $(this).removeClass("error");
                        toDate.removeClass("error");
                        return true;
                    }
                    else {
                        validation.showError("Past", "date");
                        $(this).addClass("error");
                        toDate.addClass("error");
                        return false;
                    }
                }
                else {
                    validation.showError("Invalid", "date");
                    $(this).addClass("error");
                    toDate.addClass("error");
                    return false;
                }
            }
            else {
                validation.showError("Invalid", "date");
                $(this).addClass("error");
                toDate.addClass("error");
                return false;
            }
        }
        else {
            validation.showError("Required", "dateTo");
            $(this).addClass("error");
            toDate.addClass("error");
            return false;
        }
    }
    else {
        validation.showError("Required", "dateFrom");
        $(this).addClass("error");
        toDate.addClass("error");
        return false;
    }
},

错误如下:

            if (dateTo >= dateFrom) {
                // This if statement checks if dateFrom is today or later!!
                if (dateFrom >= Date.parse(new Date().toDateString())) { 
                    $(this).removeClass("error");
                    toDate.removeClass("error");
                    return true;
                }
                else {
                    validation.showError("Past", "date");
                    $(this).addClass("error");
                    toDate.addClass("error");
                    return false;
                }
            }

替换为

            if (dateTo >= dateFrom) {
                $(this).removeClass("error");
                    toDate.removeClass("error");
                    return true;
            }

应该不会再有问题了