2012-05-31 4 views
1

Я использовал два jquery datepickers.
В первом выборе даты я выбираю дату типа «18-MAR-2012», а следующий выбор даты должен показывать только дату с 15-MAR-2012 до 21-MAR-2012.
Он должен добавить только 3 дня до и после конкретной даты («18-MAR-2012») Как это сделать?JQuery Datepicker установлен только 3 даты до и после даты коррекции

+1

http://stackoverflow.com/a/4495603/1013082 Проверьте это решение. Разумеется, вам нужно будет настроить его, но это должно дать вам отправную точку. – MetalFrog

ответ

1

Это связано с диапазоном datepicker. Я нашел решение и, возможно, это поможет вам. Рабочий скрипт here (Стилирование отсутствует в скрипке). Здесь я устанавливаю предел для следующего выбора даты при функции onSelect от первого datepicker.

var d;var tempdate; var tempdate1; var da; var da1; 
$('#nam1').datepicker({ 
    minDate: 0, 
    dateFormat: 'd/m/yy', 
    buttonImageOnly: true, 
    showAnim: 'slideDown', 
    duration: 0, 
    onSelect: function(dateStr) { 
     d = $.datepicker.parseDate('d/m/yy', dateStr); //Get selected date 
     tempdate = new Date(d); 
     tempdate1 = new Date(d); 
     tempdate.setDate(tempdate.getDate() - 3); //Subtracted 3 days 
     tempdate1.setDate(tempdate1.getDate() + 3); // added 3 days 
     da = new Date(tempdate); 
     da1 = new Date(tempdate1); 
    } 
}); 

$('#nam2').datepicker({ 
    dateFormat: 'd/m/yy', 
    buttonImageOnly: true, 
    showAnim: 'slideDown', 
    duration: 0, 
    beforeShow: function(input) 
     { 
      //setting min and max date for second datepicker 
      if(da1 != undefined) return { minDate: da, maxDate: da1 }; 
     } 
});​ 

Там будет еще лучший способ обработки переменной даты. Попробуйте сами.

+0

Nice :) Его работа –

+0

Спасибо, джентльмен! – Jebin

1
$(function(){ 
    $('#datepicker').datepicker({ 
     onSelect: function(dateText, inst) { 
      var threeDays = 259200000; 
      $('#datepicker2').datepicker("option", "minDate", new Date(Date.parse(dateText)-threeDays)); 
      $('#datepicker2').datepicker("option", "maxDate", new Date(Date.parse(dateText)+threeDays)); 
      $('#datepicker2').datepicker("setDate", dateText); 
     } 
    }); 
    $('#datepicker2').datepicker(); 
}); 

... 259200000 - 3 дня в микросекундах. каждый раз, когда вы выбираете дату в первом datepicker, она ограничивает диапазон в 2. one. К сожалению, если я не укажу $('#datepicker2').datepicker("setDate", dateText);, то датой во втором datepicker будет установлено последнее возможное значение.

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

  • Нет связанных вопросов^_^