2010-12-13 2 views
6

Я использую плагин дампинг JQuery с этим timepicker addon в двух ящиках ввода, один для даты «От», а второй - с датой «Кому».JQuery datepicker- 2 ввода От и до

Когда я установил первый, я хочу второй один быть один день после даты, выбранной в первом, отключив все даты ранее даты, выбранной в «С» даты

Если " Сначала выбирается дата, затем дата «От» устанавливается на день до даты «Кому».

Я нашел несколько примеров, но я не знаю, как получить дату со временем .so, если я, например, выбрать /12/2010 15:50 в " с»даты, даты в "к" дата устанавливается в /12/2010 15:50 или по крайней мере/12/2010 00:00.

EDITED ***

Я только что нашел этот piece of code, который работает, как я хочу, но без timepicker аддона.

$(function(){ 

    $('#dateFrom').datepicker({ 
    dateFormat: 'dd/mm/yy', 
    onSelect: function(dateText, inst) { 
     $('#dateTo').datepicker('option','minDate', new Date(inst.selectedYear, inst.selectedMonth, inst.selectedDay)); 
      } 
    }); 
    $('#dateTo').datepicker({ 
    dateFormat: 'dd/mm/yy', 
    onSelect: function(dateText, inst) { 
     $('#dateFrom').datepicker('option','maxDate', new Date(inst.selectedYear, inst.selectedMonth, inst.selectedDay)); 
    }   
    }); 

}); 

Основываясь на приведенном выше коде, это было бы возможно, чтобы приспособить его, так что я могу использовать его с timepicker аддона?

Спасибо заранее

+0

Проблема с использованием метода 'onSelect' заключается в том, что он не ведет себя одинаково с плагином datetimepicker. Обратите внимание, что вы должны нажать на день, чтобы закрыть виджет. Это не относится к datetimepicker, вероятно, из-за слайдера для времени. Тот факт, что нет надежного события, которое срабатывает, когда пользователь выбирает дату (либо нажатие «сделано» на плагине, либо щелчок от виджета) затрудняет его выполнение таким образом, по крайней мере, с проведённым мной исследованием , –

+0

@Andrew: OK Я решил, что не буду ничего делать с этими входами, но есть еще одна страница, где у меня также есть 2 входа (FROM и TO), там показывается простой календарь, но если я использую это http://jsbin.com/iyobi. Я получаю сообщение об ошибке в IE. Что я должен сделать, чтобы эта ошибка исчезла? – eddy

+0

Я не вижу ошибки в IE8 или IE8 в режиме IE7 –

ответ

1

У меня его большая часть, но я не мог понять, как установить hourMin и minuteMin после того, как виджет уже был инициализирован. Учитывая следующий HTML:

<label for="from">From</label><input id="from" name="from" /> 
<label for="to">To</label><input id="to" name="to" /> 

И это JS:

$("#from").datetimepicker(); 
$("#to").datetimepicker({ 
    beforeShow: function(input, inst) { 
     var $toDateInput = $("#to"); 
     var fromDate = $("#from").datetimepicker("getDate"); 
     var toDate = $toDateInput.datetimepicker("getDate"); 
     var afterFromDate; 

     if (fromDate) { 
      if (!toDate || (toDate <= fromDate)) { 
       afterFromDate = new Date(fromDate.toUTCString()); 
       afterFromDate.setDate(afterFromDate.getDate() + 1);    
       $toDateInput.datetimepicker("setDate", afterFromDate); 
      } 
      $toDateInput.datetimepicker("option", "minDate", fromDate); 
     } 
    } 
}); 

Посмотри здесь: http://jsfiddle.net/RWjtL/3/

Большинство ваших критериев, но есть несколько вещей, которые выключены:

  • Когда вы устанавливаете поле «Кому», дата минус даты «От» не удаляется. Я попытался установить опцию minDate на null и "" и получил странное поведение. Here's a documented issue that could be related.
  • Метод beforeShow называется несколько раз. Я думаю, это из-за вызова setDate внутри обработчика, но не может быть уверен.
  • Как указано выше, я не смог установить hourMin и minuteMin после того, как факт, и установка minDate, похоже, не отражает временную часть даты.

У автора GitHub page есть список проблем, некоторые из которых, похоже, связаны с проблемами, с которыми я столкнулся. Надеюсь, что вы начнете, по крайней мере.