Как заполнить другое значение после нажатия на календарь в 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/