2015-04-17 4 views
0

Я хотел бы знать, можно ли проверить выбранную дату с помощью элемента datepicker из jQuery UI. Я знаю, что можно выбрать дату, ограниченную форматом даты, но также можно ввести дату вручную.jQuery - Проверить дату с datepicker

Я хочу проверить, когда дата вводится вручную, если эта дата действительна. , например. 31/04/2015 будет недействительным, то же самое за 29/02/2015.

У меня есть пример кода, а также скрипка с тем же кодом, что и демо-цель.

В этом примере кода я использую грязный код imo. Есть ли более простой способ сделать это?

HTML


<input type="text" id="txtDatepicker"/> 

Javascript


$("#txtDatepicker").datepicker({ 
    dateFormat: "dd/mm/yy", 
    onClose: function() { 
     var textdate = $(this).val(); 
     var day = parseInt(textdate.substring(0, 2)); 
     var month = parseInt(textdate.substring(3, 5)); 
     switch(month) 
     { 
      case 1: 
      case 3: 
      case 5: 
      case 7: 
      case 8: 
      case 10: 
      case 12: 
       if(day < 1 || day > 30) 
       { 
        alert("Invalid date!"); 
       } 

      default: 
       if(day < 1 || day > 31) { 
        alert("Invalid date!"); 
       } 
     } 
    } 
}); 

Как упоминалось ранее, это не всегда проверить, если текущий год является високосным, так, например, 29/02/2015 будет считаться «действительным» в этом коде.

Как это сделать? Я связан с датой «dd/mm/yy» из-за моего региона, а также потому, что это назначение на стажировку, поэтому другие форматы не допускаются.

Заранее благодарен!

Демо: jsFiddle

+0

http://stackoverflow.com/questions/8098202/javascript-detecting-valid-dates – Nizam

ответ

0

Я просто хочу, чтобы оставить короткий ответ здесь.

Я бы рекомендовал использовать Moment, что упрощает обработку дат! И более надежный и более чистый, чем синтаксический анализ строк даты.

Вы можете установить его с помощью беседки.

http://bower.io

https://github.com/moment/moment

Смежные вопросы