параметры только для одного из двух плагинов
Доброе утро!:write:
Уменя два ui.DateTimePicker, мне нужно чтобы у одного время по умолчанию было 00:00 а у другого 23:59, а остальные параметры были одинаковыми. Казалось бы ничего сложного, но $(function() { $( "#to" ).datetimepicker({ hour: 23, minute: 59 }); var dates = $( "#from, #to" ).datetimepicker({ changeYear: false, dateFormat: "mm-dd", onSelect: function( selectedDate ) {var option = this.id == "from" ? "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 ); } }); }); В случае такого кода, со временем проблем не возникает..но остальные настройки не работают..я сама чувствую что код не правильный, если я правильно поняла, то первая функция выводит время еще до того как начинает выполняться другая...надо как-то по-другому..просто setDefaults установит настройки для обоих timepicker ..что же делать? |
Sveta,
для начала научиться пользоваться тегами для подсветки кода :) А так этот код должен вам помочь: $(function () { var default_options = { changeYear: false, dateFormat: "mm-dd", onSelect: function (selectedDate) { var option = this.id == "from" ? "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); } }; var extended_options = $.extend({ hour: 23, minute: 59 }, default_options); $("#from").datetimepicker(default_options); $("#to").datetimepicker(extended_options); }); Сначала определяем общие опции, затем делаем расширенные от них. Потом передаем их при инициализации плагина (каждому свои). |
Hoshinokoe,
Спасибо что пришли на выручку:thanks: !) Время работает как надо) только 1.)перестало работать вот это: onSelect: function (selectedDate) { var option = this.id == "from" ? "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); } И 2).даты на календарях выбираются один раз, и если я передумаю и захочу поменять выбранную дату - придется обновлять страничку.. Но я нашла одно решение чтобы все работало ))) Правда в моем решение кое-какой код пришлось дублировать:( В общем вот: $(function() { $( "#from" ).datetimepicker({ changeYear: false, changeMonth: true, numberOfMonths: 1, firstDay: 1, showButtonPanel: true, dateFormat: "mm-dd", onSelect: function( selectedDate ) { instance = $( this ).data( "datepicker" ), date = $.datepicker.parseDate( instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings ); $('#to').datepicker( "option", "minDate", date ); } }); $( "#to" ).datetimepicker({ hour: 23, minute: 59, changeYear: false, changeMonth: true, numberOfMonths: 1, firstDay: 1, showButtonPanel: true, dateFormat: "mm-dd", onSelect: function( selectedDate ) { instance = $( this ).data( "datepicker" ), date = $.datepicker.parseDate( instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings ); $('#from').datepicker( "option", "maxDate", date ); }); }); хотя ваш вариант мне больше нравится..не люблю когда код повторяется,как у меня..попробую доработать ваш |
Hoshinokoe,
оу!!! теги для подсветки кода!! Спасибо за замечание!! я и не сразу поняла..только сейчас заметила) сейчас посмотрю как это делается))) |
Sveta,
На форуме ещё можно редактировать свои сообщения (это я к подсветке кода). :) Невнимательно посмотрел на onSelect метод, внес исправления: $(function () { var default_options = { changeYear: false, dateFormat: "mm-dd", onSelect: function (selectedDate) { var option = this.id == "from" ? "minDate" : "maxDate", selector = this.id == "from" ? "#to" : "#from", instance = $(this).data("datepicker"), date = $.datepicker.parseDate( instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings); $(selector).datepicker("option", option, date); } }; var extended_options = $.extend({ hour: 23, minute: 59 }, default_options); $("#from").datetimepicker(default_options); $("#to").datetimepicker(extended_options); }); |
Hoshinokoe,
Да!! Теперь все действительно работает!! Спасибо большое! А то я с этим календарем всю прошлую неделю возилась - то таймпикер навесить, то сделать выбор года - слайдером в шапке (так и не сделала кстати, даже тему здесь же создавала, но, к счастью такая необходимость отпала и слайдер разрешили разместить не в шапке а просто рядом=)), в общем то одно то другое)) |
Часовой пояс GMT +3, время: 03:47. |