jquery - 範囲 - bootstrap-datepickerの日付の値を動的に設定するには?




datetimepicker 初期値 (13)

私はラインハイチャートと一緒にブートストラップdatepickerを使用しています。

私は、チャートがズームされたときにdatepickerの日付を更新したい。 そのイベントがトリガーされると、私はdatepickerの値を更新します。 値は正常に更新されますが、カレンダーをクリックすると、ポップアップカレンダーの日付はまだ古い日付になります。

ここに私のdatepickerです:

<div class="input-append date pull-right" id="dpStartDate" data-date="@DateTime.Now.AddMonths(-1).ToString("dd/MM/yyyy")" data-date-format="dd/mm/yyyy">
    <input class="span2" id="startDateText" size="16" type="text" value="@DateTime.Now.AddMonths(-1).ToString("dd/MM/yyyy")" readonly="">
    <span class="add-on"><i class="icon-th"></i></span>
</div>

私はちょうどこのコードを使用して値を更新しようとしました:

$('#dpStartDate').attr('data-date', startDate);
$('#startDateText').attr('value', startDate);

日付はうまく更新されますが、カレンダーは設定されません。

また、カレンダーではなく日付を更新するonChangeイベントのトリガーも試してみました。

$('#dpStartDate').trigger('changeDate', startDate);

$('#dpStartDate').datepicker()
    .on('show', function (ev) {
        ev.stopPropagation();
    })
    .on('changeDate', function (ev, date) {
        var startDate = new Date();
        if (date != undefined) {
            startDate = date;
            $('#dpStartDate').attr('data-date', startDate);
            $('#startDateText').attr('value', startDate);
        }
        else {
            startDate = ev.date;
            $('#dpStartDate').attr(startDate.getDate() + '/' + (startDate.getMonth() + 1) + '/' + startDate.getFullYear());
            $('#startDateText').attr(startDate.getDate() + '/' + (startDate.getMonth() + 1) + '/' + startDate.getFullYear());
        }
        $('#dpStartDate').datepicker('hide');
        ev.stopPropagation();
    });

そのようなカレンダーを更新することさえ可能なら誰にも分かりますか?

ありがとう


@Imranの答えがテキストボックスで機能する

divにdatepickerを適用するには、次のようにします:

$('#div_id').attr("data-date", '1 January 2017');
$('#div_id').datepicker("update");

カンマ区切りの複数の日付:

$('#div_id').attr("data-date", '1 January 2017,2 January 2017,3 January 2017');

datetimepickersのために私のためにこの仕事を使用してください

$('#lastdate1').data({date: '2016-07-05'});
$('#lastdate1').datetimepicker('update');
$('#lastdate1').datetimepicker().children('input').val('2016-07-05');

ブートストラップ4

ブートストラップで入力グループを使用している場合は、新しい日付をテキストボックスの親に添付する必要があります。そうでない場合は、カレンダーアイコンをクリックして外にクリックすると日付がクリアされます。

<div class="input-group date" id="my-date-component">
   <input type="text" />
    <div class="input-group-append">
      <span class="input-group-text"><i class="fa fa-calendar"></i></span>
    </div>
</div>

日付をinput-group.dateに設定する必要があります。

$('#my-date-component').datepicker("update", new Date("01/10/2014"));

また、datepickerのupdateメソッドをチェックする


あなたがhttps://github.com/smalot/bootstrap-datetimepickerを参照している場合は、次のようにして日付の値を設定する必要があります:$( 'datetimepicker1')data( 'datetimepicker')setDate(new Date(value));


このような簡単な方法(1行)

$('#startDateText').val(startDate).datepicker("update");

このコードを試して、

$(".endDate").datepicker({
    format: 'dd/mm/yyyy',
    autoclose: true
}).datepicker("update", "10/10/2016"); 

これにより、日付が更新され、フォーマットdd/mm/yyyyも適用されます。


これは私のために働く、

$('#datepicker').datepicker("setValue", '01/10/2014' );
$('#datepicker').datepicker("setValue", new Date(2008,9,03));

これは私のために働く:

$('#dpStartDate').data("date", startDate);

より使いやすく:

$("#datepicker").datepicker("setDate", new Date); 

の代わりに

$("#datepicker").datepicker("update", new Date);

updateを使用すると、イベントchangeDateはトリガーされません。


他の回答の方法を使用する場合、設定されたオプションは失われ、修正するためにグローバル設定を使用できます:

$('.datepicker').datepicker();
$.fn.datepicker.defaults.format = 'dd/mm/yyyy';
$.fn.datepicker.defaults.startDate = "0";
$.fn.datepicker.defaults.language = "es";
$.fn.datepicker.defaults.autoclose = true;
$.fn.datepicker.defaults.todayHighlight = true;
$.fn.datepicker.defaults.todayBtn = true;
$.fn.datepicker.defaults.weekStart = 1;

これで、オプションを失うことなくupdateメソッドを使うことができます:

$(".datepicker").datepicker("update", new Date("30/11/2018"));

私はそれを完全に動作させるために 'setValue'と 'update'をしなければならなかった

$('#datepicker').datepicker('setValue', '2014-01-29').datepicker('update');

$("#datepicker").datepicker("setDate", new Date);

var startDate = new Date();

$('#dpStartDate').data({date: startDate}).datepicker('update').children("input").val(startDate);

別の方法

$('#dpStartDate').data({date: '2012-08-08'});
$('#dpStartDate').datepicker('update');
$('#dpStartDate').datepicker().children('input').val('2012-08-08');
  1. プロパティdata-dateにカレンダーの日付を設定する
  2. アップデートしてください)
  3. 入力値を設定します(入力がdatepickerの子であることを忘れないでください)。

この方法で、日付を '2012-08-08'に設定しています





twitter-bootstrap