2013-08-14 2 views
0

Я видел похожие вопросы, но я недостаточно умею адаптировать другой код в соответствии с моим кодом. Может ли кто-нибудь помочь мне, показывая решение для этого точного кода? Я очень ценю любую помощь.динамически меняет maxdate jquery datepicker 7 дней с первой даты

У меня есть сценарий datepicker и поведение, которое мне бы хотелось: date1 field: выбрать любой символ между + 1d от сегодняшнего дня до максимум 3 месяцев. Основываясь на выбранном вами отзыве, позвольте пользователю выбрать любой день в течение 7 дней от знака в поле даты2 (в основном они могут нанять предмет на срок до 7 дней).

дата2 примечание если они сначала выбирают дату2, разрешите выбор даты1 максимум -7 дней, но не позволяют этой дате быть меньше + 1d с сегодняшней даты.

Я просмотрел много ответов, но не могу найти этот точный пример, извините заранее.

  $(function(){ 
       var dates = $("#date1, #date2").datepicker({ 
        defaultDate: "+1d", 
        minDate: 1, 
        maxDate: "+3M", 
        dateFormat: 'dd M yy', 
        showOtherMonths: true, 
        changeMonth: true, 
        selectOtherMonths: true, 
        required: true, 
        showOn: "focus", 
        numberOfMonths: 1, 
        onSelect: function(selectedDate) { 
         var option = this.id == "date1" ? "minDate" : "maxDate", 
         instance = $(this).data("datepicker"); 
         date = $.datepicker.parseDate(
         instance.settings.dateFormat || 
         $.datepicker._defaults.dateFormat, 
         selectedDate, instance.settings); 
         dates.not(this).datepicker("option", option, date); 
        } 
       }); 
      }); 

ответ

1

в вар today текущая дата сохраняется в формате August 14 2013

вход с идентификатором from присваивается DatePicker с датой о том, с завтрашнего дня следующих 3 месяцев

вход с идентификатором to отключена, пока пользователь выбирает дату на входе с идентификатором from

при изменении даты ввода с идентификатором from var date_diff вычисляется разность между текущей датой и выбранной на входе с идентификатором from даты и переменной date_diff передается опции minDate на входе с идентификатором to аналогично вар maxDate_d рассчитывается как вар date_diff+7 дней согласно вашему требованию выбора дата в течение недели, передается в опции maxDate и включается.

DEMO

HTML

<input type="text" id="from" /> 
<input type="text" id="to" /> 

JS

$(document).ready(function() { 
    var d = new Date(); 
    var monthNames = ["January", "February", "March", "April", "May", "June", 
     "July", "August", "September", "October", "November", "December"]; 
    today = monthNames[d.getMonth()] + ' ' + d.getDate() + ' ' + d.getFullYear(); 

    $('#to').attr('disabled', 'disabled'); 
    $('#from').datepicker({ 
     defaultDate: "+1d", 
     minDate: 1, 
     maxDate: "+3M", 
     dateFormat: 'dd M yy', 
     showOtherMonths: true, 
     changeMonth: true, 
     selectOtherMonths: true, 
     required: true, 
     showOn: "focus", 
     numberOfMonths: 1, 
    }); 

    $('#from').change(function() { 
     var from = $('#from').datepicker('getDate'); 
     var date_diff = Math.ceil((from.getTime() - Date.parse(today))/86400000); 
     var maxDate_d = date_diff+7+'d'; 
     date_diff = date_diff + 'd'; 
     $('#to').val('').removeAttr('disabled').removeClass('hasDatepicker').datepicker({ 
      dateFormat: 'dd.mm.yy', 
      minDate: date_diff, 
      maxDate: maxDate_d 
     }); 
    }); 

    $('#to').keyup(function() { 
     $(this).val(''); 
     alert('Please select date from Calendar'); 
    }); 
    $('#from').keyup(function() { 
     $('#from,#to').val(''); 
     $('#to').attr('disabled', 'disabled'); 
     alert('Please select date from Calendar'); 
    }); 

}); 
+0

Спасибо Tushar Гупта ... вы решили проблему, которая прослушивается меня так долго. – glenn

+0

Добро пожаловать ..... :) –

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