0

我正在使用 CJuiDatePicker 选择日期。我正在创建一个页面来管理假期,包括假期名称、假期开始日期、假期结束日期。从和到使用 CJuiDatePicker。我想让Holiday To Date字段大于Holiday From Date,例如Holiday From Date字段是2013-11-12,那么Holiday To Date字段在2013-11-12之前的日期被禁用并且不能选择。

下面是我的代码:

<table>
    <tr>
            <td width="20%">
                <?php echo $form->labelEx($model,'holiday_date_from'); ?>
            </td>
            <td>
                <?php
                $this->widget('zii.widgets.jui.CJuiDatePicker', array(
                    'model'       => $model,
                    'attribute'   => 'holiday_date_from',
                    'options'     => array('dateFormat'  => 'dd-mm-yy',
                        'mode'        => 'focus',
                        'changeMonth' => 'true',
                        'showAnim'    => 'slideDown',
                        'changeYear'  => 'true',
                        'yearRange'   => '1920:2013',
                        'onClose: function (selectedDate) {
                            $("#holiday_date_to").datepicker("option", "minDate", selectedDate);
                        }',
                    ),
                    'htmlOptions' => array('id' => 'holiday_date_from','class' => 'input-medium', 'style' => 'height: 20px')
                ));?>
                <?php echo $form->error($model,'holiday_date_from'); ?>
            </td>
        </tr>
    <tr>
            <td width="20%">
                <?php echo $form->labelEx($model,'holiday_date_to'); ?>
            </td>
            <td>
                <?php
                $this->widget('zii.widgets.jui.CJuiDatePicker', array(
                    'model'       => $model,
                    'attribute'   => 'holiday_date_to',
                    'options'     => array('dateFormat'  => 'dd-mm-yy',
                        'mode'        => 'focus',
                        'changeMonth' => 'true',
                        'showAnim'    => 'slideDown',
                        'changeYear'  => 'true',
                        'yearRange'   => '1920:2013',
                        'onClose: function (selectedDate) {
                            $("#holiday_date_from").datepicker("option", "minDate", selectedDate);
                        }',
                    ),
                    'htmlOptions' => array('id' => 'holiday_date_to','class' => 'input-medium', 'style' => 'height: 20px')
                ));?>
                <?php echo $form->error($model,'holiday_date_to'); ?>
            </td>
        </tr>
</table>

不幸的是,第二个 cjuidatepicker 不会禁用。我尝试在 onClose 事件中使用 alert("testing") ,但它不会触发。我也使用了 onChange 而不是 onClode 但也失败了。到底出了什么问题?

4

1 回答 1

2

您应该简单地尝试使用正确的语法,例如:

'onClose' => 'js:function (selectedDate) { $("#holiday_date_to").datepicker("option", "minDate", selectedDate); }',

或者 :

'onClose' => new CJavaScriptExpression('function (selectedDate) { $("#holiday_date_to").datepicker("option", "minDate", selectedDate); }'),
于 2013-11-12T08:54:14.093 回答