2016-08-03 87 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是为我工作的罚款。