2013-12-17 76 views
1

如何在彈出對話框中的窗體中顯示驗證錯誤?我想在彈出的對話框中顯示這些錯誤,而不是將它作爲單獨的div顯示在窗體的頂部,以便用戶點擊確定並解除盒子。如何在yii中做到這一點?在彈出框中提交錯誤?

回答

0

註冊自己的JavaScript函數的名稱爲afterValidate,這是在CActiveForm形式類clientOptions屬性的選項之一。

你的窗體聲明應該有

 'clientOptions' => array(
      'validateOnSubmit' => true, 
      'afterValidate' => 'js:myFunc', 
    ), 

和你的表格將出現類似波紋管

   <?php 
       $form = $this->beginWidget('CActiveForm', array(
        'id' => 'a-form', 
        'enableClientValidation' => true, 
        'enableAjaxValidation' => true, 
        'errorMessageCssClass' => 'required', 
        'clientOptions' => array(
         'validateOnSubmit' => true, 
         'afterValidate' => 'js:myFunc', 
        ), 
       )); 
       ?> 

       ------Your form fields------------ 

       ------Your form fields------------ 

       ------Your form fields------------ 


       <?php $this->endWidget(); ?> 

現在,你myFunc的代碼:

 <script type="text/javascript" charset="utf-8"> 
      function myFunc(form, data, hasError) 
      { 

       if (hasError) 
       { 
        var errors=''; 
        $.each(data, function(obj) 
        { 
         errors+=data[obj][0]+"\n"; 
        }); 
        alert(errors); 

        // Do what ever you want 

        return true; 
       } 
      } 
     </script> 
+0

感謝you..its工作! –

+0

如果你把這個添加到yii論壇中,Kumar_v會給你帶來很大的幫助! :-) –

0

如果您啓用客戶端驗證,那麼您將在文本框下拉菜單中收到錯誤消息。沒有用於彈出錯誤消息的內置選項。

如果您還需要彈出錯誤信息顯示,那麼您必須使用jquery。然後添加在Yii的論壇,以幫助他人以及:-)

請參閱本link(Yii的論壇),瞭解客戶端驗證細節