Bootstrap Datepicker重新初始化日期格式

时间:2014-01-31 11:34:18

标签: javascript jquery date datepicker twitter-bootstrap-3

我有Bootstrap datepicker,默认格式为 mm / dd / yyyy ,我选择了我可以更改的位置 格式从mm / dd / yyyy dd / mm / yyyy 并反转。

在选择更改时,我想要我的datepicker更改格式。

我试过

find('#options-date_format').on('change', function(){
    $("#picker").datepicker({format: formatDate})
});

但它不起作用,我找不到这样做的方法。 还试图删除/销毁datepicker但我得到了javascript错误。

由于

3 个答案:

答案 0 :(得分:13)

我认为以下方法有效,

1,每当更改格式时,取消附加然后重新附加回元素。

$("#dp3").datepicker();  // initialization
$('select').on('change', function () {
    var d = $('select option:selected').text();
    if (d == 2) {
        $("#dp3").datepicker('remove'); //detach
        $("#dp3").datepicker({          //re attach
            format: "dd/mm/yyyy"
        })
    } else {
        $("#dp3").datepicker('remove'); //detach
        $("#dp3").datepicker({          //re attach
            format: "mm/dd/yyyy"
        })
    }
});

JSFiddle

答案 1 :(得分:1)

如果您有许多日期选择器,您可以使用类选择器并重置所有日期选择器,并使用该类进行初始化。代码示例如下。 在示例中,所有输入元素都将具有类date-picker

function resetDatePickers(){
    $('.date-picker').each(function(index){
       $(this).datepicker('remove');
    });

    $('.date-picker').datepicker({
        format: "dd/mm/yyyy",
        startView: 2,
        orientation: "top auto"
    });
}


resetDatePickers();

答案 2 :(得分:0)

好的,我解决了这个扩展bootstrap-datepicker.js

setFormat: function(format) {
    this.format = DPGlobal.parseFormat(format);
}

并调用该函数

find('#options-date_format').on('change', function(){
    $("#picker").datepicker('setFormat', newFormat);
});