2009-10-06 2 views
0

Два окна ввода: когда я устанавливаю первый, я хочу, чтобы второй был на следующий день после даты, выбранной в первом. Я использую плагин jquery от Keith Wood: http://keith-wood.name/datepickRef.html.JQuery datepicker- 2 ввода/текстовые поля

Использование altField: просто сохраняет одно и то же в двух полях, но я хочу получить 1 день после второго поля ввода.

ответ

0

Взгляните на мой ответ здесь - JQuery datepicker- 2 inputs/textboxes and restricting range

Один из способов сделать это было бы использовать beforeShow свойство ограничивать значение во втором DatePicker. В качестве альтернативы, определите обработчик onSelect, который обновляет второй вход, когда дата выбрана в первом.

Working DemoПримечание: это основано на jQuery DatePicker и не Keith Woods'.

EDIT:

Как указаны на datepick plugin page -

Этот плагин формирует основу для JQuery UI Datepicker. Сделано доступным в виде отдельного плагина с команда пользовательского интерфейса желала упростить функциональность для их версии.

Таким образом, код, основанный на пользовательском интерфейсе jQuery, будет работать с датпикером Кейта.

код из демо

$(function() 
{ 

    $('#txtStartDate, #txtEndDate').datepicker(
    { 
     showOn: "both", 
     dateFormat: "dd M yy", 
     onSelect: insertOtherDate, 
     firstDay: 1, 
     changeFirstDay: false 
    }); 
}); 

function insertOtherDate(value, date, inst) { 

    var firstDate = new Date(value); 
    var datepickerInput = (date.id === 'txtStartDate') ? 'txtEndDate' : 'txtStartDate'; 
    var dateAdjust = (date.id === 'txtStartDate') ? 1 : -1; 
    var secondDate = new Date(firstDate.getFullYear(), firstDate.getMonth(), firstDate.getDate() + dateAdjust); 

    $('#' + datepickerInput).datepicker('setDate', secondDate); 
} 
+0

диапазон между startDate и endDate не всегда может быть 1. Причина, что startDate и endDate имеют minDate и maxDate. Когда выбран endDate, startDate не может измениться на «endDate - 1», а startDate может быть таким же, как и раньше. когда выбран startDate, endDate должен измениться на «startDate + 1», поэтому как это сделать Большое спасибо – Jason

+0

Если я правильно понял вас, endDate должен быть на 1 день больше, чем startDate, но не должен превышать установленный maxDate для endDate. Аналогично, startDate должен быть на 1 день меньше, чем endDate, но не раньше, чем minDate, определенный для startDate. Это верно? Если нет, вам нужно уточнить, что такое диапазон между startDate и endDate. –

+0

Что происходит, когда endDate выбирается перед startDate? –

1

Определить onSelect обработчик, который обновляет второе поле с датой, которая является один позже, чем один выбранный для первого поля.

0

Создать событие onSelect от даты. В обратном вызове прочитайте значение, преобразуйте дату в UNIX TIMESTAMP (вы можете использовать $ .datepick.TIMESTAMP), добавьте 24 * 60 * 60000 и настройте второй ввод соответственно.

+0

будет ли это вводить дату с тем же форматированием, что и в первом datepicker? –

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