根据第一个CJuiDatePicker中的选定日期限制第二个CJuiDatePicker上的日期

时间:2013-11-12 08:25:55

标签: date yii widget datepicker

我正在使用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但也失败了。出了什么问题?

1 个答案:

答案 0 :(得分:2)

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

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

或:

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