jQuery UI 日期选择器在 ajax 调用后重新初始化

jQuery UI datepicker reinitialize after ajax call

我正在使用 Yii,它是 jQuery UI 日期选择器小部件。

我在 CGridView 过滤选项中使用它。当 CGridView 完成 ajax 调用时,它将调用 afterAjaxUpdate 事件。

问题是我的网站上有这个 JUI 带有自定义设置的日期选择器,所以我不能只做 $('.picker').datepicker(); 因为所有以前的选项都会丢失。

有没有办法用相同的选项重新初始化 JUI 日期选择器?

html.php |扩展 CHtml

public static function datePicker($options) {
   return Yii::app()->controller->widget(
        'zii.widgets.jui.CJuiDatePicker',
        CMap::mergeArray(
            [
                'class' => 'picker',
            ],
            $options
        ),
        true
    );
}

view.php

$this->widget(
     'ext.GridView',
     [
         'columns' => [
             [
                  'name' => 'date',
                  'filter' => Html::datePickerField([
                      'name' => 'Model[date]',
                  ]),
             ],
         ],
     ]
);

您可以有一个将日期选择器分配给所需字段的功能:

<script>
    function setDatePicker()
    {
         $('.picker').datepicker({
            //Your desired options
         });
    }
</script>

然后,在每个 gridview 的 afterAjaxUpdate 上调用这个函数:

'afterAjaxUpdate' => 'js:function(){setDatePicker();}'