4
在Yii我有一個模式彈出使用CJuiDialog這是jquery的對話框的包裝。在這個對話框中,我有一個CJuiDatPicker,它是jquery的datepicker的包裝器。Jquery DatePicker不隱藏彈出後關閉
如果我關閉對話框,然後打開一個新的對話框,日期選擇器打開並保持可見。如果我關閉第二個對話框,日期選擇器保持打開狀態。如果我打開第三個對話框,第二個日期選擇器即使在關閉對話框後也會打開並保持打開狀態。
如何強制datepicker關閉?或者,如果第二次或更多時間打開對話框時可能會更加正確,那麼如何防止打開以前的日期選擇器?
編輯:代碼視圖如下:
<?php echo CHtml::link('Add Purchase','#',
array('onClick'=>'addTrans._addTrans_url="' . Yii::app()->createUrl('ortransaction/create',array('investment_id'=>$model->id,'type'=>OrTransaction::TYPE_BUY)) . '";{addTrans()};$("#dialogAddTrans").dialog("open");return false;'));?>
<?php $this->beginWidget('zii.widgets.jui.CJuiDialog', array(
'id'=>'dialogAddTrans',
'options'=>array(
'title'=>'Add Purchase',
'autoOpen'=>false,
'modal'=>true,
),
));?>
<div class="divForAddTrans"></div>
<?php $this->endWidget();?>
<script type="text/javascript">
//this is the magic that loads the form correctly
function addTrans()
{
//public proprety
var _addTrans_url;
<?php echo CHtml::ajax(array(
'url'=>'js:addTrans._addTrans_url',
'data'=>"js:$(this).serialize()",
'type'=>'post',
'dataType'=>'json',
'success'=>"function(data)
{
if(data.status =='failure')
{
$('#dialogAddTrans div.divForAddTrans').html(data.div);
//here is the trick: on submit->once again, call this function
$('#dialogAddTrans div.divForAddTrans form').submit(function(){addTrans(); return false;});
}else{
$('#dialogAddTrans div.divForAddTrans').html(data.div);
setTimeout(\"$('#dialogAddTrans').dialog('close')\",3000);
}
} ",
))?>;
return false;
}
你可以把你的代碼。您沒有正確編寫對話框中的日期選擇器,因此請向我們展示您的整個視圖的代碼。 – 2012-03-30 17:23:30
剛剛添加了代碼處理這個 – w00tw00t111 2012-03-30 18:05:17
好吧,只是確定它在Firefox中工作正常 - 但鉻是一個給出問題的人。 – w00tw00t111 2012-03-30 21:44:52