Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Валидация даты JQuery, Плагин validateMyForm баг при валидации 
:(
    Опции темы
llalive
  Дата 7.6.2011, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 7.6.2011

Репутация: нет
Всего: нет



Доброго времени суток. 
Наткнулся на непонятное поведение одного из плагинов для JQuery  - validateMyForm (скачан с официального сайта JQuery). Плагин выдает ошибку при проверке поля типа "дата", если в качестве месяца заданы числа 08 и 09. Другие комбинации - 01, 05, 12, 1, 5, 6 и др. проблем не вызывают. 
Валидация поля производится при помощи шаблона regex. 
Функция проверки даты:
Код

  function isValidDate(str, daysFirst){
        
      var re = /^(\d{1,2})[\s\.\/-](\d{1,2})[\s\.\/-](\d{4})$/
      if (!re.test(str)) return false;
      var result = str.match(re);
      var m = parseInt(result[1]);
      var d = parseInt(result[2]);
      if (daysFirst) {
      //if dd/mm/yyyy
        d = parseInt(result[1]);
        m = parseInt(result[2]);
      }
      var y = parseInt(result[3]);
      if (m < 1 || m > 12 || y < 1900 || y > 2100) return false;
      if (m == 2){
              var days = ((y % 4) == 0) ? 29 : 28;
      } else if(m == 4 || m == 6 || m == 9 || m == 11){
              var days = 30;
      } else{
              var days = 31;
      }
      return (d >= 1 && d <= days);
  }


Просьба поделиться мыслями.
PM MAIL   Вверх
llalive
  Дата 10.6.2011, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 7.6.2011

Репутация: нет
Всего: нет



Решение оказалось довольно простым. Проблемной была функция parseInt(). Данная функция вторым параметром получает систему счисления. По умолчанию используется восьмеричная система счисления parseInt(result[1],8).
После того, как задал десятичную систему счисления всё заработало как часы - parseInt(result[1],10).

Это сообщение отредактировал(а) llalive - 10.6.2011, 22:32
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Применение библиотек | Следующая тема »


 




[ Время генерации скрипта: 0.0406 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.