首页 > 解决方案 > Yii2 Krajee Datepicker 插件 - 更新 startDate

问题描述

我正在使用Krajee Datepicker,我有两个日期输入字段(从和到)。我想将“to”输入字段的 startDate 设置为“from”输入字段中的选定值。所以我做了这样的事情:

<?= $form->field($model, 'from')->widget(DatePicker::class, [
        'type'          => DatePicker::TYPE_COMPONENT_APPEND,
        'pluginOptions' => [
            'autoclose'      => TRUE,
            'format'         => 'dd.mm.yyyy',
            'startDate'      => new \yii\web\JsExpression('new Date()'),
            'todayHighlight' => TRUE,
        ],
        'pluginEvents' => [
            'changeDate' => 'function(e){
                 $( "#model-to" ).kvDatepicker("option", "startDate", e.date);
            }'
        ]
    ]) ?>

    <?= $form->field($model, 'to')->widget(DatePicker::class, [
        'type'          => DatePicker::TYPE_COMPONENT_APPEND,
        'pluginOptions' => [
            'autoclose'      => TRUE,
            'format'         => 'dd.mm.yyyy',
            'startDate'      => new \yii\web\JsExpression('new Date()'),
            'todayHighlight' => TRUE,
        ],
    ]) ?>

我在 pluginOptions 中设置的默认值工作得很好。但是,一旦我更改“开始”日期,“结束”日期选择器就会完全忽略 startDate(甚至是旧的 startDate)。连语言设置都没有了……

我也尝试使用datepicker而不是kvDatepicker. 但这会引发错误

未捕获的类型错误:$(...).datepicker 不是函数

标签: phpyii2bootstrap-datepicker

解决方案


好的,最后我有一个解决方案小部件创建一个新元素并附-kvdate加到 id。

所以如果我使用这个元素,我可以像这样开始一个调用,它工作得很好:

$("#model-to-kvdate").data("datepicker").setStartDate(e.date);


推荐阅读