Разделите указатель даты jQuery UI на 3 отдельных текстовых поля - PullRequest
4 голосов
/ 05 октября 2011

Кто-нибудь знает об элегантном способе разделения ввода даты в jquery-ui на 3 отдельных поля?

По умолчанию его ввод - это только одно текстовое поле: DD/MM/YYYY

Мне нужноотделить вход в 3 отдельных из них за день, месяц и год:. DD MM и YYYY 1009 *

Ответы [ 3 ]

5 голосов
/ 05 октября 2011
<input type='text' id='fullDate' name='fulldate'>
<!-- Your other HTML fields listed above -->

$('#fullDate').datepicker({
    onSelect: function(dateText, inst) {
        var pieces = dateText.split('/');
        $('#day').val(pieces[0]);
        $('#month').val(pieces[1]);
        $('#year').val(pieces[2]);
    }
})

рабочий пример http://jsfiddle.net/jomanlk/7NgpQ/

5 голосов
/ 05 октября 2011

Вы можете использовать функцию datepicker onClose, а затем получить значение.

См. Это http://jsfiddle.net/96FPU/

Это будет работать, только если на dateFormat правильно ссылаетсяиндекс массива, т. е. в моем примере, он работает с day = index 0, month = index 1, year = index 1. Также в моем примере я просто присваиваю значения spans'

3 голосов
/ 06 октября 2011

Вы можете использовать метод .datepicker('dialog') для достижения этого эффекта.

function onSelect(dateText, inst) {
    var pieces = dateText.split('/');
    for (var i = 0; i < pieces.length; ++i)
        $('.date:eq('+i+')').val(pieces[i]);
};

$('.date').click(function(event) {
    var d = $('.date').map(function() { return $(this).val() }).get().join('/');
    $(this).datepicker('dialog', d, onSelect, { dateFormat: 'dd/mm/yy' }, [10, 40]);
});

Смотрите это в действии: http://jsfiddle.net/william/QHasQ/.

...