web-dev-qa-db-ja.com

再初期化または破棄Bootstrap datepickerを動的に

Bootstrap datepickerをformat、beforeShowDayなどのオプションを動的に更新する方法を破棄する方法はありますか? .('remove')メソッドが機能していません。

私の目標は、入力を変更するときに日付ピッカーのオプションを変更することです。次に例を示します。

$('#employee').change( function() {
   $('#date').datepicker('destroy'); //not working 'cause bootstrap hasnt a destroy method
   $('#date').hide();
});

次に、入力が変更されたときに初期化関数を呼び出します。

function updateCalendar(){
     $('#date').datepicker({
          format:"dd/mm/yyyy",
          beforeShowDay: updateC  //function that modifies the available days to show
     });    
 }
17
dan
$('.datepicker').datepicker('remove');

削除する前に、DOMに日付選択オブジェクトがあることを確認してください。削除せずに、カレンダーを非表示にし、日付の形式を変更して更新できます。

$('.datepicker').datepicker('update');
34
Rajesh Madhu

次を使用できます。

$('#element_id').datepicker('destroy');

これをajax呼び出しのすぐ外で呼び出しました。私のajax呼び出しは、datepickerを動的に作成していました。呼び出しが行われた後、オブジェクトを破棄しました。

以下のように:

$.ajax({ url: 'my_ business_functions.php',
     data: {func_call: 'my_method_name', my_parameter: my_parameters},
     type: 'post',
     success: function(output) {
         //all my stuffs here
        $('#element_id').val(datepicker_value);
        }
    });
    $('#element_id').datepicker('destroy');

これは私の目的を果たしました。

2
Anirban

おそらく、入力btnグループでdatepickerを使用しています。つまり、日付アイコンボタンを使用しています。したがって、破棄して再初期化する場合は、単にinput要素を選択しないでください。 div has "date-picker"を選択してから、削除して再度初期化する必要があります。

0
KnowGe

実際には、要素のIDを削除して複製し、IDを追加し直すだけであることがわかりました。

0
rnirnber