2016-08-03 61 views
0

我使用AJAX驗證在pjax形式這樣Ajax驗證在pjax形式yii2

<?php Pjax::begin(); ?> 
<?php $form = ActiveForm::begin([ 
    'id' => 'address-details-form',         
'options' => ['class' => 'form-horizontal','data-pjax' => true,], 
'enableAjaxValidation'=>true, 
    ]); ?> 
//My form 
<?php ActiveForm::end(); ?> 
<?php Pjax::end(); 

提交表單後,它會發布一些模型數據,這樣

「personaldetails-manual_address_line1」 :[「必須輸入地址行1」],「personaldetails-manual_address_line2」:[「您必須輸入地址行2」],「personaldetails-manual_address_line3」:[「您必須輸入地址行3」],「personaldetails-manual_address_line4」 「您必須輸入地址行4」],

其實這就是爲什麼它happens.But我是除去AJAX驗證意味着它正在罰款我的模型的規則,但我想AJAX驗證

回答

0

你必須有這個在您的控制器

if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())) { 
    Yii::$app->response->format = Response::FORMAT_JSON; 
    return ActiveForm::validate($model); 
} 

這應該是你做的只是後,您的

$model = new [ModelClass](); 

看到更多細節在這裏:http://www.yiiframework.com/doc-2.0/guide-input-validation.html#ajax-validation

+0

是的,我在我的控制器操作中做了這個 –

+0

你可以試試沒有'data-pjax'=> true? –

+0

沒有'data-pjax'=>真正的pjax不工作 –

0

最後我得到pjax形式與阿賈克斯validation.I在我的控制器結合AJAX這樣

if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post()) && $model->validate()) 

我不不,它寫或錯我的朋友ganasa建議me.It是爲我工作的罰款。