2010-07-02 2 views
9

На стандартном виджете jquery.ui.datepicker есть только следующая и предыдущая кнопка для выбора месяца. Если я включу год, он будет отображаться в окне выбора.jquery ui datepicker следующий и предыдущий год

Что было бы хорошим способом реализовать две кнопки с обеих сторон календаря? Один для выбора следующего месяца и один для выбора в следующем году, отображаемый рядом друг с другом с правой стороны, и сделать то же самое для предыдущих кнопок с левой стороны, конечно.

$(function() { 
    $("#dp").datepicker({changeYear: true}); 
}) 
+0

Не предпочитаете ли вы это делать с помощью changeYear и changeMonth вместе вместо того, чтобы использовать две кнопки на обеих сторонах календарь? –

+3

Возможно, это поможет вам: http://stackoverflow.com/questions/3423670/jquery-ui-datapicker-how-to-add-next-previous-year-buttons jQuery UI не поддерживает его, но другие плагины. – Tim

ответ

1

Посмотрите в файле javascript, где созданы кнопки prev/next.

<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_1329396041654.datepicker._adjustDate('#datepicker', -1, 'M');" title="Prev"><span class="ui-icon ui-icon-circle-triangle-w">Prev</span></a> 

Вышеприведенный пример сгенерированной кнопки prev.

Что вам нужно сделать, это просто создать следующие кнопки Prev /, которые имеют следующие:

_adjustDate('#datepicker',-1,'Y'); 
_adjustDate('#datepicker',+1,'Y'); 

Как их функции. Проверьте образец на http://jqueryui.com/demos/datepicker/dropdown-month-year.html и используя элемент проверки Firefox/хром на кнопке prev - настройте его, чтобы использовать «Y» вместо «M», и вы увидите, как он работает.

Надеюсь, это поможет!

3

Если вы просто хотели, чтобы заменить текущее поведение следующей и предыдущей кнопки, так что при нажатии их, вы бы пойти еще на один год, вы можете использовать StepMonths вариант:

$(".selector").datepicker({ stepMonths: 12 }); 
5

Лучшее решение Я нашел это совместить ответ Leniel с некоторыми другими свойствами, вот код у меня есть мои даты элементов

jQuery(document).ready(function(){ 
    jQuery('input.date').each(function(){ 
     jQuery(this).datepicker({dateFormat:'dd/mm/yy', changeMonth: true, stepMonths: 12, showAnim:"slideDown" }); 
     jQuery('#ui-datepicker-div .ui-helper-hidden-accessible').css("position", "absolute !important"); 
     jQuery('#ui-datepicker-div').css('clip', 'auto'); 
    }); 

Надеется, что это помогает кто-то еще столько же, как это сделало я!

P.S. Другое дело в том, что datepicker работает во всех браузерах (ie6 +, ff3 +, chrome4 +, safari, opera)

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