2014-10-27 45 views
0

我使用Yii的activeForm創建窗體。Yii基於多場景的客戶端驗證

表單的所有方面都在工作,只是客戶端驗證不處理場景。

如果我可以根據場景獲得客戶端驗證,我希望它。

下文提到的是表單

$form = $this->beginWidget('CActiveForm', array(
    'enableClientValidation' => true, 
    'enableAjaxValidation' => false, 
    'errorMessageCssClass' => 'has-error', 
    'htmlOptions' => array(
     'class' => 'form-horizontal', 
     'role' => 'form', 
     'id' => 'payment-form', 
    ), 
    'clientOptions' => array(
     'id' => 'payment-form', 
     'validateOnSubmit' => true, 
     'errorCssClass' => 'has-error', 
     'successCssClass' => 'has-success', 
     'inputContainer' => '.form-group', 
     'validateOnChange' => true, 
    ), 
)); 

回答

0

當數據被推到模型,在這裏我們定義的情景驗證FYI方案驗證完成的部分代碼。所以如果你想在客戶端進行驗證,唯一的方法是使用「JAVASCRIPT」,或者通過你關閉的ajax啓用ajax驗證'enableAjaxValidation' => true,以使用ajax獲得客戶端驗證。

+0

是的,我同意但是當它打開每個字段時,它會向服務器發送一個請求,並且在每次按鍵時可能會有點慢,我已經看到Yii生成的代碼,並且當ajax返回它回來與基於場景的客戶端驗證,然後它不會做一個Ajax請求,這將是很好,如果一些如何yii這樣做在一開始 – deadmantfa 2014-10-29 07:49:39

+0

如果你是那麼多關心的時間,然後使用JavaScript客戶端驗證,保持你的想法 – Tauseef 2014-10-29 11:12:35