如何在 JQuery 中设置 Yii2/Kartik/Bootstrap DatePicker

Sim*_*Guy 3 php yii2 yii2-advanced-app

我有以下 Yii2 代码来输出 Kartik DateTime 小部件:

<?php echo $form->field($model, 'expiry_date')->widget(
    DatePicker::className(), [
    'type' => DatePicker::TYPE_COMPONENT_APPEND,
    'pluginOptions' => [
        'autoclose'=>true,
        'format' => 'dd-M-yyyy'
    ]
]); ?>
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用以下 JQuery 代码设置它:

$( "#record-expiry_date").datepicker("setStartDate", new Date());
Run Code Online (Sandbox Code Playgroud)

但不幸的是,我无法让它发挥作用 - 从未设置过该值。我尝试了基于在线找到的解决方案的多种排列(例如 setDate,使用 .change() 方法等),但没有一个对我有用。

我可以像这样使用 .val 方法:

$( "#record-expiry_date").val("01 Dec 2010");
Run Code Online (Sandbox Code Playgroud)

尽管这正确设置了日期文本框,但日历小部件似乎没有正确“注册”它(即,打开时它仍然显示今年的日期)。

有人可以告诉我我做错了什么吗?

Blu*_*Zed 6

我这样做的方式基本上是使用 bootstrap Datepicker 文档中记录的方法,这里:http : //bootstrap-datepicker.readthedocs.io/en/latest/methods.html#update

所以你的情况的JS调用是这样的,取代了原来datepicker()kvDatepicker()

$("#record-expiry_date").kvDatepicker("update", new Date(2010, 12, 01));
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!