2016-05-09 2 views
0

Я пытаюсь сделать что-то вроде в этой теме: Date range picker on jquery ui datepickerДиапазон дат без встроенного DatePicker

Но я не хочу, чтобы DatePicker быть инлайн, и этот код работает только с инлайн DatePicker.

Мне нужна только датапикер при выборе # даты1 или # даты2.

Мне должно быть легко, но я застрял здесь, и единственными решениями, которые я нахожу в google, являются плагины или встроенный datepicker.

ответ

0

jQuery UI DatePicker по умолчанию является выпадающим списком, поэтому пример, который вы нашли, немного устарел, я думаю.

https://jsfiddle.net/gRoberts/z4j227h6/

$("#from").datepicker({ 
    defaultDate: "+1w", 
    changeMonth: true, 
    numberOfMonths: 3, 
    onClose: function(selectedDate) { 
    $("#to").datepicker("option", "minDate", selectedDate); 
    } 
}); 
$("#to").datepicker({ 
    defaultDate: "+1w", 
    changeMonth: true, 
    numberOfMonths: 3, 
    onClose: function(selectedDate) { 
    $("#from").datepicker("option", "maxDate", selectedDate); 
    }, 
    beforeShowDay: function (date) { 
    var date1 = $.datepicker.parseDate($.datepicker._defaults.dateFormat, $("#from").val()); 
    var date2 = $.datepicker.parseDate($.datepicker._defaults.dateFormat, $("#to").val()); 
    return [true, date1 && ((date.getTime() == date1.getTime()) || (date2 && date >= date1 && date <= date2)) ? "dp-highlight" : ""]; 
    }, 
}); 

Приведенная выше код/​​скрипка показывает, что с некоторыми незначительными изменениями, вы можете повторить функциональность в раскрывающемся списке.

HTH.

+0

Спасибо, Это нормально, но этот закрывает дату, когда вы выбираете одну из дат. Мне нужна функция datepicker, пока вы не выберете обе даты. – Alex

+0

Это немного взломанный метод - https://jsfiddle.net/gRoberts/z4j227h6/1/ - В принципе, вы должны держать его в строгом, но показывать/скрывать его. Вы можете изменить его, чтобы сфокусировать фокус на второй вход, как только дата будет выбрана на первой. – Gavin

+0

в этот момент я сделал это: оставьте datepicker inline, css -> .datepicker {position: absolute; display: none} и javascript: $ ("# date1, # date2"). focus (function() {$ (". datepicker"). show();}); и, наконец, y использовал метод .hide(), когда оба входа даты имеют некоторую дату внутри. Мне это не нравится, но похоже, что он работает. – Alex

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