2011-02-07 3 views
64

Я хочу получить дату с datepicker всякий раз, когда пользователь выбирает дату в jQuery UI datepicker и нажимает кнопку в форме.Как получить дату с jQuery UI datepicker

Хорошо, мне нужно получить день, месяц и год, когда они выбирают. Как я могу получить форму даты jQuery UI?

ответ

92

Использование

$(your_datepicker_id).datepicker("getDate") 
76

Вы можете получить дату с помощью функции GetDate:

$("#datepicker").datepicker('getDate'); 

Значение возвращается в виде объекта Date JavaScript.

Если вы хотите использовать это значение, когда пользователь выбирает дату, вы можете использовать onSelect события:

$("#datepicker").datepicker({ 
    onSelect: function(dateText, inst) { 
     var dateAsString = dateText; //the first parameter of this function 
     var dateAsObject = $(this).datepicker('getDate'); //the getDate method 
    } 
}); 

Первый параметр в данном случае выбрана дата в строке. Используйте parseDate, чтобы преобразовать его в объект JS Date.

См. http://docs.jquery.com/UI/Datepicker для полного описания jQuery UI DatePicker.

15

Попробуйте это работает как шарм, дает выбранную вами дату. onsubmit форма попытаться получить это значение: -

var date = $("#scheduleDate").datepicker({ dateFormat: 'dd,MM,yyyy' }).val(); 

Reference here

0

Иногда много неприятностей с ним. В атрибуте значение данных данных данных 28-06-2014, но datepicker показывает или сегодня или ничего. Я решил его в таком виде:

<input type="text" class="form-control datepicker" data-value="<?= date('d-m-Y', (!$event->date ? time() : $event->date)) ?>" value="<?= date('d-m-Y', (!$event->date ? time() : $event->date)) ?>" /> 

я добавил к входу datapicker атрибута данных стоимости, потому что, если вызов JQuery (это) .val() ИЛИ JQuery (это) .attr (» value ') - ничего не работает. Я решил Инициализировать цикла каждый datapicker и принять свое значение из атрибута данных стоимости:

$("form .datepicker").each(function() { 
     var time = jQuery(this).data('value'); 
     time = time.split('-'); 
     $(this).datepicker('setDate', new Date(time[2], time[1], time[0], 0, 0, 0)); 
    }); 

и это работает прекрасные =)

+0

это будет работать только в том случае, если ваш формат даты d-m-Y .. если у вас есть m-d-Y или любой другой формат, вы будете hosed! –

0

ответ NamingException работал для меня. Кроме того я использовал

var date = $("#date").dtpicker({ dateFormat: 'dd,MM,yyyy' }).val()

datepicker не работал, но dtpicker сделал.

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