Обеспечение даты может быть добавлено в прошлом - PullRequest
0 голосов
/ 17 ноября 2011

Что я могу сделать с этим фрагментом кода, чтобы обеспечить возможность добавления отсутствий как в прошлом, так и в будущем? Всякий раз, когда я пытаюсь что-то добавить в прошлом, кажется, что он все еще хочет дать мне ошибку, что я не могу добавить отсутствие в прошлом. Я даже не уверен, как кодировать, чтобы убедиться, что он может, или какой бит удалить. Я знаю, что есть немного кода, который мне не позволяет, но я не уверен, какой бит и что удалять. Я не очень разбираюсь в 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;
    }
},

1 Ответ

0 голосов
/ 17 ноября 2011

Вот ваша ошибка:

            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;
            }

и проблема больше не будет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...