2014-09-09 2 views
0

Это первый случай, когда я что-то делаю с пользовательским интерфейсом jQuery, а также мои навыки JS находятся на уровне начинающих.Выберите номер недели или дату в JQuery UI datepicker

Что моя проблема:

Я хочу использовать JQuery UI DatePicker выбрать:

  1. получить одну дату, когда я нажимаю на день или
  2. получить диапазон дат, когда я нажимаю на номер недели.

Как я могу получить диапазон дат/дат? Но было бы неплохо получить простой рабочий пример.

+1

посмотрите здесь HTTP: //api.jqueryui.com/datepicker/ – Thiago

ответ

3

Может быть что-то вроде, что это поможет вам:

$("#datepicker").datepicker({ 
showWeek: true, 
firstDay: 1 
}); 

// Highlight week on hover week number 
$(document).on("mouseenter",".ui-datepicker-week-col", 
       function(){$(this).siblings().find("a").addClass('ui-state-hover');}); 
$(document).on("mouseleave",".ui-datepicker-week-col", 
       function(){$(this).siblings().find("a").removeClass('ui-state-hover');}); 

// Select week on click on week number 
$(document).on("click",".ui-datepicker-week-col", 
    function(){ 
     $first = $(this).siblings().find("a").first(); 
     $last = $(this).siblings().find("a").last(); 
     $first.click(); 
     $parentFirst = $first.parent(); 
     $parentLast = $last.parent(); 
     $("#datepicker").val(
     (Number($parentFirst.data("month"))+1)+"/"+$first.text()+"/"+$parentFirst.data("year") 
      + " - " + 
     (Number($parentLast.data("month"))+1)+"/"+$last.text()+"/"+$parentLast.data("year") 
     ); 
    }); 

Fiddle демо: http://jsfiddle.net/lparcerisa/hw1tpthb/3/

0

Просто играя с датами, вычитая дни на 7, чтобы получить недели. Попробуйте это:

var selectedDate = $('#datepicker").datepicker("getDate"); 

var iterator = selectedDate; 

var year = selectedDate.getFullYear(); 

var weeksCount = 0; 
while (iterator.getFullYear() == year) 
{ 
    iterator = new Date(iterator.getFullYear(), 
         iterator.getMonth(), 
         iterator.getDate()-7); 

    weeksCount++; 
} 

weeksCount будет иметь номер недели :)

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