こんにちは、私は JS の初心者で、次のことを試しています。
ファンシーボックスをトリガーする ajaxLink がある Yii アプリケーションを使用しています。このリンクは、fancybox 内の iframe にビューをレンダリングします。レンダリングされたビューは、Yii zii.widgets.jui.CDatePicker ウィジェットを含むフォームです。これにより、ビューがレンダリングされ、適切な日付値を持つ日付テキスト フィールドが表示されます。しかし、クリックするとカレンダーが表示されません。
ファンシーボックスをトリガーするコード:
echo CHtml::ajaxLink('Add Entry',Yii::app()->createUrl('site/myentry', array('action'=>'new')),
array('type'=>'GET', 'update'=>'#adexp', 'complete'=>'afterAjax'));
js関数:
function afterAjax()
{
$.fancybox({
href : '#adexp',
scrolling : 'no',
transitionIn : 'fade',
transitionOut : 'fade',
width: 1024,
height: 500,
autoDimensions: false,
onClosed: function() { $('#adexp').html(''); location.reload();},
});
}
フォームの iframe のレンダリング:
<iframe src="<?php echo $this->createUrl('site/entryform', array('UtcRecord'=>$model->UtcRecord, 'UserId'=>$model->UserId, 'action'=>$action));?>" style="width: 100%; height:440px;" id="entryform"></iframe>
このフォーム ビュー内のウィジェット:
$this->widget(
'zii.widgets.jui.CJuiDatePicker',
array(
'model' => $model,
'attribute' => 'EntryTime',
'language'=> 'en',
'options' => array(
'dateFormat' => 'dd-mm-yy',
'style'=>'z-index: 5000;',
),
)
);
Firebug による観察: フォームの入力フィールドに Datepicker クラスがありません。通常のページで同じ Yii ウィジェット コードを使用すると、このクラスは入力タグに存在し、ウィジェットは正常に動作します。
私は試しました: 1. datepicker ウィジェットの z-index を 5000 に増やします。
これは、iframe 内での Yii ウィジェットのレンダリングの問題でしょうか?
この問題に関する洞察を本当に感謝します。:-)