Jquery日期选择器在弹出窗口关闭后未隐藏

4
在Yii中,我使用CJuiDialog创建了一个模态弹出窗口,它是jquery对话框的包装器。在这个对话框中,我使用了CJuiDatPicker,它是jquery日期选择器的包装器。
如果我关闭对话框,然后打开一个新的对话框,日期选择器会打开并保持可见状态。如果我关闭第二个对话框,则日期选择器仍然保持打开状态。如果我打开第三个对话框,则会打开第二个日期选择器,并且即使关闭对话框后也会保持打开状态。
如何强制关闭日期选择器?或者更准确地说,当第二次或更多次打开对话框时,如何防止它打开先前的日期选择器?
编辑:下面是视图的代码:
<?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;
}


你能放上你的代码吗?你没有正确地在对话框中编写日期选择器,所以请展示你整个视图的代码。 - bool.dev
刚刚添加了处理此问题的视图中的代码。 - w00tw00t111
好的,刚刚确定在Firefox中运行良好 - 但是Chrome出现了问题。 - w00tw00t111
1个回答

1

在加载/打开对话框之前,您可以销毁对话框内容并重新加载内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接