YiiのCActiveFormで、クライアントサイドでjavascriptによるバリデーションを行う場合、
<?php $form=$this->beginWidget('bootstrap.widgets.TbActiveForm', array(
'id'=>'event-form',
'enableClientValidation'=>true,
'clientOptions'=>array('validateOnSubmit'=>true),
'focus'=>array($model,'title'),
)); ?>のようにすると簡単に実現することができます。
'enableClientValidation'=>true,
が入力欄ごとにバリデーション、
'clientOptions'=>array('validateOnSubmit'=>true),がサブミットボタンを押した際、フォーム全体に行うバリデーションを有効にする設定です。なお、
'focus'=>array($model,'title'),
は、フォームが表示された際、フォーカスする入力欄を指定しています。
また、
<?php $form=$this->beginWidget('bootstrap.widgets.TbActiveForm', array(
'id'=>'event-form',
'enableClientValidation'=>true,
'clientOptions'=>array('validateOnSubmit'=>true,
'beforeValidate'=>'js:function(){alert("beforeValidate");};return true;}',
'afterValidate'=>'js:function(form, data, hasError){if(hasError){alert("afterValidate");};return true;}'),
'focus'=>array($model,'title'),
)); ?>のような感じにすると、バリデーションの前後に実行したい処理を組み込むことができます。beforeValidate、afterValidateとも関数の最後にtrueを返すようにする必要があります。詳細については、こちらを参考にしてください。