yii2.0 Activeform 开启ajax验证
yii2 2017-12-10 16:32:30

 视图部分:

PHP Code复制内容到剪贴板
  1. use yii\helpers\Html;  
  2. use yii\helpers\Url;  
  3. use yii\widgets\ActiveForm;  
  4.   
  5.                     <?php $form = ActiveForm::begin([  
  6.                         'id' => 'form-id',  
  7.                         'enableAjaxValidation' => true,  
  8.                         'validationUrl' => Url::toRoute(['validate-form']),  
  9.                     ]); ?>  

 

验证要单独加一个validate-form的路由,在当前controller下加一个:

PHP Code复制内容到剪贴板
  1. public function actionValidateForm () {  
  2.     Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;  
  3.     $model = new Model(); //这里根据具体场景改  
  4.     $model->load(Yii::$app->request->post());  
  5.     return \yii\widgets\ActiveForm::validate($model);  
  6. }  

 

input在失去焦点时,会去跑这个接口去验证。

 

1、如果是更新操作,请求验证的路由中把id也带过去,对validate-form方法也作相应的修改

PHP Code复制内容到剪贴板
  1. public function actionValidateForm ($id = null) {  
  2.       
  3.     $model = $id === null ? new DocumentNav() : DocumentNav::findOne($id);  
  4.     $model->load(Yii::$app->request->post());    
  5.   
  6.     Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;  
  7.     return \yii\widgets\ActiveForm::validate($model);    
  8. }  

 

 

 

本文来自于:http://www.manks.top/yii2_modal_activeform_ajax.html

Powered by yoyo苏ICP备15045725号