zorro76
@zorro76

Не сохраняется выбранное значение air datepicker, как решить трабл?

использую в работе air datepicker, все работает замечательно, за исключением одного бага: при обновлении страницы (пользователь редактирует данные) выбранное значение (дата) пропадает и приходиться выбирать ее снова. При этом если сделать F12 и посмотреть input, то в value дата есть. Не пойму что за баг и как решить данную проблему?

код datepickera
$('.datepicker-here').datepicker({
        
        onRenderCell: function(date, cellType) {
            if (cellType == 'day') {
                var today = new Date();
                today.setHours(0, 0, 0, 0);

                if (today && date <= +today + 86400000 * 3) {
                    return {
                        disabled: true
                    }
                }
            }
        },
        minDate: new Date(),

        position: "left bottom",

        language: {
            days: ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],
            daysShort: ['Su','Mo','Tu','We','Th','Fr','Sa'],
            daysMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
            months: ['January','February','March','April','May','June','July','August','September','October','November','December'],
            monthsShort: ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Okt','Nov','Dec'],
            today: 'Today',
            select: '',
            clear: 'clear',
            dateFormat: 'yyyy-mm-dd',
            timeFormat: '',
            firstDay: 1
        }
    });


<input type="text" name="launch_date" value="2017-11-25" data-date-format="yyyy-mm-dd" class="form-control datepicker-here input-lg edited"  id="id_launch_date" placeholder="">


UPD:
добавил в коде в value значение date, таким образом дата действительно сохраняется после перезагрузки. Но перестал работать функционал выбора дат: до текущей даты и три дня после нельзя выбрать.

$('.datepicker-here').datepicker({
        
        onRenderCell: function(date, cellType) {
            if (cellType == 'day') {
                var today = new Date();
                today.setHours(0, 0, 0, 0);

                if (today && date <= +today + 86400000 * 3) {
                    return {
                        disabled: true
                    }
                }
            }
        },
        minDate: new Date(),
        <b>value: date,</b>
        position: "left bottom"

        
    });
  • Вопрос задан
  • 1331 просмотр
Решения вопроса 1
zorro76
@zorro76 Автор вопроса
ну как-то так:
$(function() {
  var datepicker = $('.datepicker-here').datepicker({
    onSelect: function(formattedDate, date, inst) {
      localStorage.setItem("datepickerDate", date);
    },
    onRenderCell: function(date, cellType) {
      if (cellType == 'day') {
        var today = new Date();
        today.setHours(0, 0, 0, 0);

        if (today && date <= +today + 86400000 * 3) {
          return {
            disabled: true
          }
        }
      }
    },
    minDate: new Date(),
    position: 'left bottom',
    language: {
        days: ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],
        daysShort: ['Su','Mo','Tu','We','Th','Fr','Sa'],
        daysMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
        months: ['January','February','March','April','May','June','July','August','September','October','November','December'],
        monthsShort: ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Okt','Nov','Dec'],
        today: 'Today',
        select: '',
        clear: 'clear',
        dateFormat: 'yyyy-mm-dd',
        timeFormat: '',
        firstDay: 1
    }
  }).data('datepicker');
  
  var selectedDate = localStorage.getItem("datepickerDate");
  if (selectedDate !== null && selectedDate !== '') datepicker.selectDate(new Date(selectedDate));
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы