2013-12-17 88 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的论坛),了解客户端验证细节