0

在我的 yii 应用程序中,我有一个简单的表单,其中包含两个字段,如下所示:

<?php
                        $form = $this->beginWidget('CActiveForm', array(
                            'id' => 'message-form',
                            'enableClientValidation' => true,
                            //'enableAjaxValidation' => true,
                            'clientOptions' => array(
                                'validateOnSubmit' => true,
                                'validateOnChange' => false,
                                'validateOnType' => false,
                                'errorCssClass' => 'has-error',
                                'successCssClass' => 'has-success',

                        )));
                        ?>

                        <div class="form-group">
                            <div class="row">
                                <div class="col-md-6">
                                    <?php echo $form->labelEx($model, 'subject'); ?>
                                    <?php echo $form->textField($model, 'subject', array('class' => 'form-control')); ?>
                                    <?php echo $form->error($model, 'subject', array('class' => 'alert alert-danger')); ?>
                                </div>
                                <div class="col-md-5"></div>
                            </div>
                        </div>
                        <div class="form-group">
                            <div class="row">
                                <div class="col-md-6">
                                    <?php echo $form->labelEx($model, 'message'); ?>
                                    <?php echo $form->textField($model, 'message', array('class' => 'form-control', 'id'=>'message')); ?>
                                    <?php echo $form->error($model, 'message', array('class' => 'alert alert-danger')); ?>
                                </div>
                            </div>
                        </div>
                         ......
                         //remaining of code

“主题”和“消息”是“通知”模型的两个字段。在通知模型中,我定义了这个规则:

array('subject, message', 'required')

我的问题是验证“主题”有效,但验证“消息”无效!提交表单后,出现“主题”的错误消息,但“消息”没有任何错误。谁能帮我解决这个问题?我使用 Yii 1.1.15

4

2 回答 2

1

http://www.yiiframework.com/doc/api/1.1/CActiveForm你可以看到例子

<?php $form = $this->beginWidget('CActiveForm', array(
    'id'=>'user-form',
    'enableAjaxValidation'=>true,
    'enableClientValidation'=>true,
    'focus'=>array($model,'firstName'),
)); ?>

<?php echo $form->errorSummary($model); ?>

<div class="row">
    <?php echo $form->labelEx($model,'firstName'); ?>
    <?php echo $form->textField($model,'firstName'); ?>
    <?php echo $form->error($model,'firstName'); ?>
</div>
<div class="row">
    <?php echo $form->labelEx($model,'lastName'); ?>
    <?php echo $form->textField($model,'lastName'); ?>
    <?php echo $form->error($model,'lastName'); ?>
</div>

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

我想你设置 enableAjaxValidation = true

于 2015-01-08T12:26:45.520 回答
0

"id" => "message"您的消息字段上有 HTML 属性的原因吗?Yii CActiveFormmodelName_fieldName为每个字段生成一个特定的 HTML id。

您无需手动设置 id(如您的主题字段;它没有 id)。Yii 需要这些格式的 id 来进行验证、获取/发布数据和更多的东西(作为客户端/js 函数)。

删除"id" => "message"您的消息字段并再次测试。

于 2015-01-09T05:53:41.613 回答