2012-07-12 36 views
1

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

这里是我的_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' 的尽头 -

有没有更好的方法?

请指点

+0

我的帖子的评论已被自动迁移到我相信的聊天。无论如何,当你回来时,留下我的评论,我会来聊天室,帮助你。也很难告诉你究竟在哪里打开对话框,而不看你的提交代码 – 2012-07-12 13:14:59

+0

之前我的代码有一些错误,请检查更新的答案 – 2012-07-12 14:43:06

回答

1

已经有此jQuery插件:jQuery BlockUI plugin

但是,如果你想使用CJuiDialog,只要确保closeOnEscapefalse,并且modaltrue,也autoOpen应该false

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

编辑:

示例代码隐藏对话框的X键:

$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(); 
        }' 
     )) 
); 

要打开对话框:$("#mywaitdialog").dialog("open");

您可以打开afterValidate中的对话框,就像您猜测的那样。当表单数据被传递给服务器时,对话框将显示,并且在完成之后,将出现url导航(将加载新页面)。

+0

让我们[在聊天中继续讨论](http:// chat.stackoverflow.com/rooms/13773/discussion-between-mem-and-bool-dev) – MEM 2012-07-12 09:34:00