2012-03-30 14 views
4

In Yii Ich habe ein modales Popup mit CJuiDialog, die ein Wrapper für jQuery-Dialog ist. In diesem Dialog habe ich einen CJuiDatPicker, der ein Wrapper für jquery's datepicker ist.Jquery DatePicker nicht ausblenden nach PopUp Schließen

Wenn ich den Dialog schließe und dann einen neuen Dialog öffne, öffnet sich ein Datepicker und bleibt sichtbar. Wenn ich den 2. Dialog schließe, bleibt der Datepicker geöffnet. Wenn ich einen 3. Dialog öffne, öffnet sich ein 2. Datepicker und bleibt auch nach dem Schließen des Dialogs geöffnet.

Wie kann ich den Datepicker zum Schließen zwingen? Oder, möglicherweise richtiger, wenn der Dialog für eine 2. oder mehr Zeit geöffnet wird, wie kann ich verhindern, dass es einen vorhergehenden datepicker öffnet?

bearbeiten: Code für Ansicht unten aufgeführt:

<?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; 
} 

+0

können Sie Ihren Code setzen. Sie codieren den Datepicker nicht korrekt innerhalb des Dialogs. Zeigen Sie uns also den Code Ihrer gesamten View. –

+0

Gerade hinzugefügt den Code aus der Sicht, die sich mit dieser – w00tw00t111

+0

befasst Okay, nur festgestellt, dass es in Firefox gut funktioniert - aber Chrome ist derjenige, der die Probleme gibt. – w00tw00t111

Antwort

1

Sie den Dialog Inhalt vor dem Laden zerstören/Öffnen des Dialogs und relod den Inhalt wieder

Verwandte Themen