Показать сообщение отдельно
  #1 (permalink)  
Старый 02.03.2017, 09:26
Аватар для shyxeroks
Аспирант
Отправить личное сообщение для shyxeroks Посмотреть профиль Найти все сообщения от shyxeroks
 
Регистрация: 02.03.2017
Сообщений: 38

Валидация формы (дата рождения)
Приветствую, есть скрипт для проверки даты с учетом месяца и года, то есть, что бы не было возможно выбрать допустим 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, что не так делаю? Благодарю!
Ответить с цитированием