Получение значения из jQuery datepicker

Если я хочу отобразить jQuery UI datepicker inline, прикрепив его к DIV, как $("div#someID").datepicker() - Как получить доступ к выбранной дате? Я предполагаю, если это не связано с INPUT тогда он не будет отправлен вместе с формой.

Я думаю, как продолжение, если мне нужно привязать его к входному элементу, есть ли способ контролировать позиционирование datepicker относительно входного элемента? Если бы я хотел, чтобы datepicker отображался выше или сбоку от элемента, а не ниже него, как сделал бы я это?

простите, если этот ответ где-то очень очевидное.

7 ответов


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

$("#datepicker").datepicker({
    onSelect: function() { 
        var dateObject = $(this).datepicker('getDate'); 
    }
});

Я не уверен насчет второй части вашего вопроса. Но вы пробовали использовать таблицы стилей и относительное позиционирование?


можно использовать getDate способ:

var d = $('div#someID').datepicker('getDate');

это даст вам объект даты в d.

нет параметры позиционирования всплывающее окно, но вы можете сделать что-то с CSS или beforeShow событие случае необходимости.


$('div#someID').datepicker({
   onSelect: function(dateText, inst) { alert(dateText); }
});

вы должны привязать его только к элементу ввода


вы можете удалить атрибут name этого ввода, поэтому он не будет отправлен.

для доступа к значению этого элемента управления:

$("div#someID").datepicker( "getDate" )

и вы можете взглянуть на документ в http://jqueryui.com/demos/datepicker/


вы можете сделать это следующим образом-с проверкой, чтобы убедиться, что datepicker привязан к элементу.

var dt;

if ($("div#someID").is('.hasDatepicker')) {
    dt = $("div#someID").datepicker('getDate');
}

для установки в datepicker рядом с полем ввода вы можете использовать следующий код.

$('#datepicker').datepicker({
    beforeShow: function(input, inst)
    {
        inst.dpDiv.css({marginLeft: input.offsetWidth + 'px'});
    }
});

если выбранные вами элементы не являются одним, Вам нужно использовать этот способ:

$('[type="date"]').datepicker();
$('[type="date"]').change(function() {
    var date = $(this).datepicker("getDate");
    console.log(date);
});