在弹出框中提交错误?

时间:2013-12-17 12:14:35

标签: yii

如何在弹出式对话框中的表单中显示验证错误?我想在弹出式对话框中显示这些错误,而不是将其显示在表单顶部,以便用户点击正常,解雇方框。如何在yii中做到这一点?

3 个答案:

答案 0 :(得分:0)

如果您启用了客户端验证,那么您将在文本框下拉菜单中收到错误消息。弹出错误消息没有内置选项。

如果你需要弹出错误信息显示,那么你必须使用jquery。然后在Yii论坛中添加以帮助其他人: - )

有关客户端验证的详细信息,请参阅此link(Yii论坛)

答案 1 :(得分:0)

您可以使用自定义CFormModel自行构建HTML视图,并在模式弹出窗口中使用getError()方法。

请参阅:http://www.yiiframework.com/doc/api/1.1/CModel#getError-detail

和:http://www.yiiframework.com/doc/api/1.1/CFormModel

答案 2 :(得分: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>