Год Месяц День Dropdowm Javascript

Ниже приведена функция даты, которая корректирует дни в зависимости от месяца и високосных годов. По какой-то причине, когда выбран февраль, он никогда не показывает день 28, будь то високосный год или нет. Если високосный год, он прыгает с...27, 29 Когда это не високосный год, он заканчивается в 27. Можете ли вы помочь исправить этот баг? заранее спасибо

 <script type="text/javascript">
        // dropdown  date
        function monthOrYearChanged(yearId, monthId, dayId) {
            dayId = "#" + dayId;
            monthId = "#" + monthId;
            yearId = "#" + yearId;
            var currentMonth = $(monthId).val();
            var currentDay = $(dayId).val();

            // Set the numbers of days in the day dropdown
            changeDayCount = function (numDays) {
                while ($(dayId).children().length > numDays) {
                    $(dayId + " option:last").remove();
                }
                while ($(dayId).children().length < numDays) {
                    $(dayId).append($("<option></option>").attr(
                        "value",
                        $(dayId).children().length + 1).text($(dayId).children().length + 1));
                }
            };

            // Adjust number of days based on month and year
            switch (currentMonth) {
                case "4":
                case "6":
                case "9":
                case "11":
                    changeDayCount(30);
                    break;
                case "2":
                    var currentYear = $(yearId).val();
                    // Check for leap year
                    if (currentYear % 400 == 0 ||
                       (currentYear % 100 != 0 && currentYear % 4 == 0))
                        changeDayCount(29);
                    else
                        changeDayCount(28);
                    break;
                default:
                    changeDayCount(31);
            }

            // Make sure the day value wasn't too high
            if (currentDay > $(dayId).children().length)
                $(dayId).val($(dayId).children().length);
        }
    </script>

0 ответов

Другие вопросы по тегам