如何在Yii的CJuiDatepicker中点击日历后填写其他值

时间:2011-04-23 01:09:00

标签: php jquery-ui yii zii-widgets

点击日历日期后设置结帐日期的值时出现问题。这是代码。我尝试通过给定函数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 个答案:

答案 0 :(得分:2)

您可以在'onSelect'事件中选择选定日期,并在函数()上使用参数,如下所示:

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

要将此日期应用于其他datePicker,您可以通过以下方式执行此操作:

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

答案 1 :(得分:1)

你可以尝试:

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

jQuery UI doc:http://jqueryui.com/demos/datepicker/#method-setDate

相关问题