将文本框日期的格式动态更改为另一个文本框

时间:2011-09-20 18:10:57

标签: javascript jquery datepicker

我希望用户在从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 个答案:

答案 0 :(得分:1)

使用日期选择器的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);替换最后一行代码