Валидация формы

в CValidator есть addError() который выводит ошибку если поле не валидно, дык вот надо в случае валидности поля выдавать не ошибку, а просто хинт какой нибудь на подобе ошибки. кто ни будь сталкивался?

например при аякс валидации ошибка грузится в $form->error(…); нужно что то подобное при валидности

Есть например successCssClass в clientOptions CActiveForm. В крайнем случае можно самому какой нибудь метод написать, типа $form->getSuccessMessage(‘user_login’). Смотря для чего нужно…

Спасибо разобрался, требовалось при аякс валидации…

можно как в виджите CActiveForm указать


<?php 

'clientOptions'=>array(

		'afterValidateAttribute'=>

		'js:function(form, attribute, data, hasError){

		}') ?>



так и в


<?php echo $form->error($user,'username', array(

		'afterValidateAttribute'=>

		'js:function(form, attribute, data, hasError){

		}')); ?>

ну а дальше думаю ничего сложного

еще вопрос по валидации формы) :

нужно сделать набор полей required,

если определенное поле (boolean валидатор(например если стоит "галочка" у checkbox`a)) в true,

иначе необязательными




array(

	'actual_address_zip_code,

	actual_address_country,

	actual_address_region,

'required', [b]if $this->flag===true[/b]),



что то такое нужно реализовать

Вместо названия валидатора, можно написать имя метода модели и сделать проверку на валидность в этом методе.


array('actual_address_zip_code,ctual_address_country, actual_address_region', 'ValidatorName', ...)


public function ValidatorName($attribute, $params)

{

	

}

Или сделать проверку в afterValidation.


class MyModel extends CActiveRecord

{

	public function afterValidation()

	{

		$errors = array();


		if($this->checkBox && !$this->actual_address_zip_code)

			$errors['actual_address_zip_code'] = 'Message...';


		$this->addError($errors);

	}

}

о точно спасибо, а я и забыл про


public function ValidatorName($attribute, $params)

хм тогда получется можно в рулес добавить что то типо




public function rules() {

$rules = array(

.............

);

if($this->flag===true) {

$rules[] = array(

	'actual_address_zip_code,

	actual_address_country,

	actual_address_region',

'required');

return $rules;

}

}