Изменение формата даты текстового поля на другое текстовое поле на лету - PullRequest
2 голосов
/ 20 сентября 2011

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

Как видите, 2 текстовых поля имеют формат DD, d MM yy. Это то, что я хочу показать людям, так и должно быть. Но чтобы мой код работал правильно, эта дата должна быть сохранена в базе данных в формате Y-m-d (например, 2012-03-23)

Я хочу избегать использования кода PHP после отправки формы для преобразования. Может быть, со скрытым полем, которое автоматически получает и преобразует значения #enarksi и #liksi? После этого я опубликую значение скрытых полей.

$(document).ready(function() {

    var date = new Date();
    var m = date.getMonth(),
        d = date.getDate(),
        y = date.getFullYear();

    $('#enarksi, #liksi').datepicker({
        minDate: new Date(y, m, d),
        dateFormat: 'DD, d MM yy'
    });

    $("#enarksi, #liksi").datepicker($.datepicker.regional["el"]);

});

1 Ответ

1 голос
/ 20 сентября 2011

Используя событие onSelect устройства выбора даты, вы можете проанализировать дату, когда она изменяется, и установить ее в скрытое поле.

$('#enarksi, #liksi').datepicker({
    minDate: new Date(y, m, d),
    dateFormat: 'DD, d MM yy',
    onSelect: function(selectedDate) {
        // Parse the selected date
        var instance = $(this).data('datepicker'),
            date = $.datepicker.parseDate(
                instance.settings.dateFormat ||
                $.datepicker._defaults.dateFormat,
                selectedDate, instance.settings);

        // Reformat
        var formatted = $.datepicker.formatDate('yy-mm-dd', date);

        // Set the formatted date
        $('#hiddenField').val(formatted);         
    }
});

Вам просто нужно найти способ выбрать скрытое поле.Например, вы можете использовать атрибут data- в ваших текстовых полях, например data-hidden-field, а затем просто заменить последнюю строку кода на $('#' + $(this).data('hidden-field')).val(formatted);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...