设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
立即注册
只需一步,快速开始
快捷导航
登录
注册
论坛首页
BBS
建站模版
微站设计
虚拟主机
企业邮箱
博客日志
Blog
搜索
搜索
搜索
热搜
长春
优惠
活动
做网站
本版
帖子
用户
本版
帖子
用户
请
登录
后使用快捷导航
没有帐号?
立即注册
道具
勋章
任务
留言板
设置
我的收藏
退出
时时商务社区
»
论坛首页
›
建站资源
›
建站技术
›
yii2 modal弹窗之ActiveForm ajax表单异步验证
返回列表
查看:
575
|
回复:
0
yii2 modal弹窗之ActiveForm ajax表单异步验证
[复制链接]
网络通达
当前离线
积分
7881
2647
主题
2647
帖子
7881
积分
论坛元老
论坛元老, 积分 7881, 距离下一级还需 9992118 积分
论坛元老, 积分 7881, 距离下一级还需 9992118 积分
积分
7881
发消息
电梯直达
楼主
发表于 2018-2-14 05:35:21
|
只看该作者
|
倒序浏览
|
阅读模式
前面我们讲述了
yii2中如何使用modal
以及
yii2 gridview列表内更新操作如何使用modal的问题
,本以为modal要告一段落可以开始新的话题了,但是实际问题往往超乎想像,这不modal弹窗提交的表单说是怎么验证的问题又出来了,又出来了!
首先撇开modal不谈,我们就yii2 ActiveForm如何以Ajax的方式提交表单做一个简单的说明,这也是我们今天主题的重点,modal确实没啥好说了。后面若是有我再把话改回来。
yii2中,ActiveForm默认做了客户端验证,但是表单的提交,却不是无刷新的。也就是常常看到的表单提交后页面会刷新。如果想要开启无刷新的模式,只需要在ActiveForm开始开启enableAjaxValidation即可,像下面这样
'form-id',
'enableAjaxValidation' => true,
]
); ?>
注意哦,id和enableAjaxValidation一个都不能少。
接着看服务端的实现
if ($model->load(Yii:
app->request->post())) {
Yii:
app->response->format = yii\web\Response::FORMAT_JSON;
if ($errors = \yii\widgets\ActiveForm::validate($model)) {
return $errors;
} else {
if($model->save(false)) {
return $this->redirect(['index']);
}
}
}
return $this->render('create', [
'model' => $model,
]);
如此一来就简单的实现了yii2异步无刷新提交表单了!
其实下面说与不说已经不重要了,主要是写给一些懒人参考吧。聪明的人看了标题就应该明白了如何解决modal通过ActiveForm提交表单的问题。
为了兼容modal,注意我们说的是兼容而不是实现,我们对程序稍稍做了些改动,仅做参考。
if ($model->load(Yii:
app->request->post())) {
if ($model->save()) {
if (Yii:
app->request->isAjax) {
Yii:
app->response->format = \yii\web\Response::FORMAT_JSON;
return ['success' => true];
}
return $this->redirect(['index']);
} else {
if (Yii:
app->request->isAjax) {
Yii:
app->response->format = \yii\web\Response::FORMAT_JSON;
return \yii\widgets\ActiveForm::validate($model);
}
}
}
if (Yii:
app->request->isAjax) {
return $this->renderAjax('create', [
'model' => $model,
]);
} else {
return $this->render('create', [
'model' => $model,
]);
}
以上所述是小编给大家介绍的yii2 modal弹窗之ActiveForm ajax表单验证的相关知识,希望对大家有所帮助,如果大家想了解更多内容敬请关注脚本之家网站!
您可能感兴趣的文章:
YII2.0之Activeform表单组件用法实例
Yii2创建表单(ActiveForm)方法详解
Yii2实现ActiveForm ajax提交
分享到:
QQ好友和群
QQ空间
腾讯微博
腾讯朋友
收藏
0
回复
使用道具
举报
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
用户反馈
客户端