yii2.0 Activeform 开启ajax验证
视图部分:
PHP Code复制内容到剪贴板
- use yii\helpers\Html;
- use yii\helpers\Url;
- use yii\widgets\ActiveForm;
- <?php $form = ActiveForm::begin([
- 'id' => 'form-id',
- 'enableAjaxValidation' => true,
- 'validationUrl' => Url::toRoute(['validate-form']),
- ]); ?>
验证要单独加一个validate-form的路由,在当前controller下加一个:
PHP Code复制内容到剪贴板
- public function actionValidateForm () {
- Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
- $model = new Model(); //这里根据具体场景改
- $model->load(Yii::$app->request->post());
- return \yii\widgets\ActiveForm::validate($model);
- }
input在失去焦点时,会去跑这个接口去验证。
1、如果是更新操作,请求验证的路由中把id也带过去,对validate-form方法也作相应的修改
PHP Code复制内容到剪贴板
- public function actionValidateForm ($id = null) {
- $model = $id === null ? new DocumentNav() : DocumentNav::findOne($id);
- $model->load(Yii::$app->request->post());
- Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
- return \yii\widgets\ActiveForm::validate($model);
- }