Yii CActiveForm - 请等待消息

时间:2012-07-12 08:04:04

标签: yii

我们希望提交一个模式弹出窗口,告诉用户“请等待”,直到表单完成提交。

以下是我的 _form.php 的一部分(仅提供可读的建议):

<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'event-form',
        'enableClientValidation' => true,
        'clientOptions'=> 
              array('validateOnSubmit'=>true, 
                'afterValidate'=>'js:function() {     
                         $("#publishErrors").empty();
                         $("#event-form_es_").empty();
                         i = true;
                         if($("#EntityEvent_active").is(":checked"))
                         {
                          $("#publishErrors").show().append("<p>Please check:</p>")
                          if($("#Event_name").val()=="")
                          {
                            $("#Event_name").addClass("error"); 
                            ...
                            ...

我承认我在这个过程中有点迷失,我不确定这是否会起作用,仍然是:

我正在考虑放置这个:

$this->beginWidget('zii.widgets.jui.CJuiDialog'
        , array('options'=>array(
            'title'=>'My Title'
            , 'modal'=>true
            ))
);

echo 'Please Wait While Your Form is Being Submitted';

$this->endWidget('zii.widgets.jui.CJuiDialog');

在'afterValidate'的最后 -

有更好的方法吗?

请咨询

1 个答案:

答案 0 :(得分:1)

已经有一个jquery插件:jQuery BlockUI plugin

但是如果你想使用CJuiDialog,只需确保closeOnEscapefalsemodaltrueautoOpen也应为{{} 1}}。

如果您愿意,也可以在CJuiDialog中使用jQueryUI Progressbar来显示进度。

编辑:

隐藏对话框x按钮的示例代码:

false

打开对话框:$this->beginWidget('zii.widgets.jui.CJuiDialog', array( 'id'=>'mywaitdialog', 'options'=>array( 'title'=>'My Title', 'modal'=>true, 'autoOpen'=>false,// default is true 'closeOnEscape'=>false, 'open'=>// supply a callback function to handle the open event 'js:function(){ // in this function hide the close button $(".class-of-closebutton").hide(); }' )) );

您可以在afterValidate中打开对话框,正如您所猜到的那样。当表单数据传递到服务器时,对话框将显示,完成后将进行URL导航(将加载新页面)。

相关问题