0

我有两个模型 message 和 messageto,我在 messageto 表单页面中使用消息模型属性如何使用 ajax 验证来验证这些属性,我是 YII 的新手。

我正在使用 application.extensions.tokeninput.TokenInput 来显示字段,但我无法验证这些小部件上的字段。感谢您等待您的答复。

4

1 回答 1

1

How-Yii-Ajax-Validation-Works 的深入了解将极大地帮助您使用此功能并对其进行一些自定义。

恐怕我没有使用tokeninput 扩展,但关于您的两个模型 ajax 验证,以下一般计划应该有效:

在您的View中,确保您有:

 $form = $this->beginWidget('CActiveForm', array(
     'id'=>'some-id-for-your-form',
     'enableAjaxValidation'=>true //turn on ajax validation on the client side
));

此外,在View中,任何具有验证规则的字段都应具有:

<?php echo $form->textField($model, 'some_attribute'); ?>
<?php echo $form->error($model, 'some_attribute'); ?> // This is used to present validations error

并在您的Controller中,在通过 加载View输入之前的 create 或 update 操作中,输入POST以下行:

$messageModel = new Message;
$messageToModel = New MessageTo;

if(Yii::app()->getRequest()->getIsAjaxRequest()) 
{
  echo CActiveForm::validate( array( $messageModel,$messageToModel)); 
  Yii::app()->end(); 
}
/*
  The rest of your code goes here
*/

至于您正在使用的扩展,如果它自动生成视图代码,那么您需要知道如何配置它以放置所需enableAjaxValidation => true$form->error($model,'some_attribute')部件。

希望这有帮助!

于 2012-08-17T12:16:25.283 回答