2009-05-18 1 views
4

Учитывая эту разметку: (! Устрашающий)Как инициализировать jQuery UI datepicker на дату из строки запроса?

// Calendar.html?date=1/2/2003 
<script> 
    $(function() { 
    $('.inlinedatepicker').datepicker(); 
    }); 
</script> 
... 

<div class="inlinedatepicker" id="calendar"/> 

Это будет отображать инлайн DatePicker с очень небольшим усилием. Как настроить датупик на дату, прошедшую через строку запроса?

Обратите внимание, что в этом случае у меня нет окна ввода - только календарь, прикрепленный к div.

ответ

9

Это должно работать, хотя вы можете столкнуться с проблемами локали (в частности, M/D/Y против D/M/Y).

var date = location.match(/(?:\?|&)date=(\d+\/\d+\/\d+)(&|$)/)[1]; 
$('.inlinedatepicker').datepicker().datepicker("setDate", new Date(date)); 
+0

Я попробую. Мне кажется сумасшедшим, что нет встроенного jquery, чтобы получить значение параметра querystring без использования плагинов или сложного кода. –

+0

Я не сомневаюсь, что для него есть плагин, но ядро ​​jQuery содержит очень мало в стороне от манипуляций с DOM и Ajax. –

+0

Да, я начинаю это понимать - это по дизайну. –

1

мне удалось сделать это с

$('.inlinedatepicker').datepicker().datepicker("setDate", new Date(2011,11,01)); // Date equals December 1, 2011. 

я должен был вычесть один из месяца, хотя, чтобы получить правильную дату, как это кажется, что дата, начиная с нуля (0 = январь)

2

в дополнение к @Ben пустой ответ вы можете использовать defaultDate как это

var date = location.match(/(?:\?|&)date=(\d+\/\d+\/\d+)(&|$)/)[1]; 
$('.inlinedatepicker').datepicker({defaultDate:new Date(date)}); 
Смежные вопросы