0

こんにちは、私は 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 ウィジェットのレンダリングの問題でしょうか?

この問題に関する洞察を本当に感謝します。:-)

4

1 に答える 1

0

に変更renderPartial()します

$this->renderPartial('path.to.view',$variables_into_view,false,true);

最後のパラメータはCController::processOutput()$processOutputを呼び出すもので、必要なクライアント スクリプト (この場合はjs と css) を出力に挿入します。datePicker

于 2013-01-07T15:41:48.147 に答える