Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Jquery Datepicker баг с выбором года (https://javascript.ru/forum/jquery/68235-jquery-datepicker-bag-s-vyborom-goda.html)

sergeantpepper 03.04.2017 22:50

Jquery Datepicker баг с выбором года
 
Добрый день!

При выборе даты из прошлого происходит странный баг:
https://jsfiddle.net/0phm3ds9/3/

Список годов сокращается лишь до одного значения.

Если убрать определение default date, то баг выглядит еще более неадекватно.
Сталкивался ли кто-то с подобным проявлением плагина, как лечится?

рони 03.04.2017 23:27

sergeantpepper,
вам нужно определится что будет в maxDate если дата атрибуте ничего нет .

и формировать обьект с опциями лучше заранее
var obj = {};
if ($('input').data('min-year')) obj.minDate = $('input').data('min-year');

sergeantpepper 03.04.2017 23:38

рони, спасибо!

Однако, думаю от макс даты это не зависит: https://jsfiddle.net/0phm3ds9/6/

Попробуйте убрать default date и попробовать выбрать, например, 1923 год.

рони 04.04.2017 00:09

datepicker инициализация из дата-атрибутов
 
sergeantpepper,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
  <script>
$(function() {
$.datepicker.regional['ru']={
           closeText: 'Закрыть',
           prevText: '&#x3c;Пред',
           nextText: 'След&#x3e;',
           currentText: 'Сегодня',
           monthNames: ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],
           monthNamesShort: ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],
           dayNames: ['воскресенье', 'понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота'],
           dayNamesShort: ['вск', 'пнд', 'втр', 'срд', 'чтв', 'птн', 'сбт'],
           dayNamesMin: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб'],
           weekHeader: 'Нед',
           dateFormat: 'dd.mm.yy',
           firstDay: 1,
           isRTL: false,
           showMonthAfterYear: false,
           yearSuffix: ''
    };
$.datepicker.setDefaults($.datepicker.regional['ru']);

var obj = {inline: true,
          language: 'ru',
          changeYear: true,
          changeMonth: true};

var minYear = $('input').data('min-year');
if (minYear) obj.minDate = '01.01.' + minYear;
else minYear = 'c-10'
var maxYear = $('input').data('max-year');
if (maxYear) obj.maxDate = '01.01.' + maxYear;
else maxYear = 'c+10'
var defaultDate = $('input').data('default-date');
if (defaultDate) obj.defaultDate = defaultDate;
obj.yearRange = [minYear,maxYear].join(":") ;

$('input[type="date"]').attr('type','text').datepicker(obj).addClass('date');

});
  </script>
</head>

<body>
  <input type="date" name="date_birth[]" value="" placeholder="дд.мм.гггг" data-min-year="1920" data-default-date="01.01.1920"  />

</body>
</html>

sergeantpepper 04.04.2017 00:31

рони,

Большое спасибо, что разжевали, как для тупого :)
Все работает)


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