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を返すようにする必要があります。詳細については、こちらを参考にしてください。