Как заполнить другое значение после нажатия на календарь в CJuiDatepicker Yii

У меня проблема с установкой даты оформления заказа после нажатия на календарную дату. Вот код Я пытаюсь заполнить значение check_out_date дать функцию onSelect, но ничего не меняется на целевое входное значение. Может кто-нибудь помочь мне дать решение?

Вот кусок кода:

    <div class="row">
<?php
        echo $form->labelEx($model, 'check_in_date');
        //echo $form->textField($model,'check_in_date');
        $this->widget('zii.widgets.jui.CJuiDatePicker', array(
            'name' => 'Reservation[check_in_date]',
            'value' => ($model->check_in_date) ?
                $model->check_in_date :
                date('m/d/Y'),
            'options' => array(
                'dateFormat' => 'mm/dd/yy',
                'disabled' => 'true',
                'showAnim' => 'fold',
                //'beforeShowDay' => 'js:$.datepicker.noWeekends',
                'onSelect' => 
                    'js:function() {
                        // to automatically assign check out date input value
                        $("#Reservation_check_out_date").val("04/23/2011");
                    }',
                'minDate' => '0',
                'changeMonth' => true,
                'changeYear' => true,
            ),
            'htmlOptions' => array(
                'style' => 'height:20px;'
            ),
        )
    );

    echo $form->error($model, 'check_in_date');
?>
    </div>
    <div class="row">
<?php
        echo $form->labelEx($model, 'check_out_date');
        //echo $form->textField($model, 'check_out_date');
        $this->widget('zii.widgets.jui.CJuiDatePicker', array(
/*
            'model'=>$model,
            'attribute' => 'check_out_date',
*/
            'name' => 'Resevation[check_out_date]',
            'value' => ($model->check_out_date) ?
                $model->check_in_date :
                date('m/d/Y', strtotime("+1 day")),
            'options' => array(
                'dateFormat' => 'mm/dd/yy',
                'showAnim' => 'fade',  
                'changeMonth' => true,
                'changeYear' => true,
                'showOn' => 'button',
                'buttonImage' => Yii::app()->request->baseUrl . '/images/calendar.png',
                'buttonImageOnly' => true,
                'beforeShow' =>
                    'js:function() {
                        var selectedDate = $("#' . CHtml::activeId($model, 'check_in_date') . '").datepicker("getDate");
                        selectedDate.setDate(selectedDate.getDate() + 1);
                        $(this).datepicker("option", "minDate", selectedDate);
                    }'
            ),
            'htmlOptions' => array(
                'style' => 'font-size:0.8em',
                'disabled' => 'disabled',
            ),
        )
    );

    echo $form->error($model, 'check_out_date');
?>
    </div>

2 ответа

Вы можете взять выбранную дату в событии onSelect с параметром on function(), например так:

'onSelect'=> 'js:function( selectedDate ) {}

А для применения этой даты к другому DatePicker вы можете сделать это следующим образом:

    'onSelect'=> 'js:function( selectedDate ) {
                  $("#'.CHtml::activeId($model,'check_out_date').'").datepicker( "option", "minDate", selectedDate );
    }',

Ты можешь попробовать:

'onSelect' => 'js:function() {$("#Reservation_check_out_date").setDate("04/23/2011");}',

Документация по пользовательскому интерфейсу jQuery: http://jqueryui.com/demos/datepicker/

Другие вопросы по тегам