Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Валидация формы (дата рождения) (https://javascript.ru/forum/dom-window/67674-validaciya-formy-data-rozhdeniya.html)

shyxeroks 02.03.2017 09:26

Валидация формы (дата рождения)
 
Приветствую, есть скрипт для проверки даты с учетом месяца и года, то есть, что бы не было возможно выбрать допустим 31 февраля или 31 апреля.
function updateDays(){
   var monthSel = document.getElementById('date_birth_month');
   var daySel   = document.getElementById('date_birth_day');
   var yearSel  = document.getElementById('date_birth_year');
   var monthVal = monthSel.value;
   var yearVal  = yearSel.value;
   var daysInMonth = 31;
   if (monthVal==2)
   {
    daysInMonth = (yearVal%4==0 && (yearVal%100!=0 || yearVal%400==0)) ? 29 : 28;
   }
   else if (monthVal==4 || monthVal==6 || monthVal==9 || monthVal==11)
   {
    daysInMonth = 30;
   }
   if(daySel.options.length > daysInMonth)
   {   
    daySel.options.length = daysInMonth;
   }   
   while (daySel.options.length != daysInMonth)
   { 
   daySel.options[daySel.length] = new Option(daySel.length+1, daySel.length+1, false);
   }
   return;
}


Не могу найти причину, почему то не совсем корректно работает, бывает удаляет из селекта дней 28 и 30, что не так делаю? Благодарю!

shyxeroks 02.03.2017 10:50

Извиняюсь, нашел причину, у select-ов value="0" были.

рони 02.03.2017 11:21

shyxeroks,
количество дней в месяце или зависимые селекты


Часовой пояс GMT +3, время: 02:47.