Как установить начальный год в дате выпадающего списка

0

У меня есть код, показывающий дату рождения. Я хотел бы добавить еще одну функцию в этот скрипт java, но не знаю, как наилучшим образом.

Возраст установлен в 2000 году по умолчанию, и пользователь не может пойти ниже, поскольку вам нужно быть 13 или выше, чтобы присоединиться к сайту.

Могу ли я настроить этот код для автоматического изменения по умолчанию каждый год?

Например, в следующем году человек может родиться в 2001 году до 13 лет, поэтому по умолчанию будет "2001 год" после 2002 года и т.д.

может ли кто-нибудь помочь мне автоматизировать этот код вместо того, чтобы вручную его изменить?

Пожалуйста, см. Fiddle

var ysel = document.getElementsByName("year")[0],
    msel = document.getElementsByName("month")[0],
    dsel = document.getElementsByName("day")[0];
for (var i = 2000; i >= 1950; i--) {
    var opt = new Option();
    opt.value = opt.text = i;
    ysel.add(opt);
}
ysel.addEventListener("change", validate_date);
msel.addEventListener("change", validate_date);

function validate_date() {
    var y = +ysel.value, m = msel.value, d = dsel.value;
    if (m === "2")
        var mlength = 28 + (!(y & 3) && ((y % 100) !== 0 || !(y & 15)));
    else var mlength = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][m - 1];
    dsel.length = 0;
    for (var i = 1; i <= mlength; i++) {
        var opt = new Option();
        opt.value = opt.text = i;
        if (i == d) opt.selected = true;
        dsel.add(opt);
    }
}
validate_date();
  • 0
    Вау, вы рассматривали возможность использования объекта Date вместо?
  • 0
    нет. Есть ли более простой способ сделать это, чем то, что я делаю?
Теги:

1 ответ

3

Используйте Date obj, чтобы найти текущий год и вычесть предпочтительный возраст

var currentYear = new Date().getFullYear();
for (var i = currentYear-13; i >= 1950; i--) {
    var opt = new Option();
    opt.value = opt.text = i;
    ysel.add(opt);
}
  • 0
    Спасибо за вашу помощь, куда бы я добавил этот код? я должен удалить какой-то другой код?
  • 0
    Нет необходимости удалять существующий код. Вместо года жесткого кодирования, например, для (var i = 2000 ; i> = 1950; i--) используйте для (var i = currentYear-13 ; i> = 1950; i--)
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню