yii表单ajax验证,yii2 modal弹窗之ActiveForm ajax表单异步验证
前面我们讲述了yii2中如何使用modal以及yii2 gridview列表内更新操作如何使用modal的问题,本以为modal要告一段落可以开始新的话题了,但是实际问题往往超乎想像,这不modal弹窗提交的表单说是怎么验证的问题又出来了,又出来了!
首先撇开modal不谈,我们就yii2 ActiveForm如何以Ajax的方式提交表单做一个简单的说明,这也是我们今天主题的重点,modal确实没啥好说了。后面若是有我再把话改回来。
yii2中,ActiveForm默认做了客户端验证,但是表单的提交,却不是无刷新的。也就是常常看到的表单提交后页面会刷新。如果想要开启无刷新的模式,只需要在ActiveForm开始开启enableAjaxValidation即可,像下面这样
'id' => '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表单验证的相关知识,希望对大家有所帮助,如果大家想了解更多内容敬请关注脚本之家网站!
yii表单ajax验证,yii2 modal弹窗之ActiveForm ajax表单异步验证相关推荐
- yii2 modal弹窗之ActiveForm ajax表单异步验证
作者:白狼 出处:http://www.manks.top/yii2_modal_activeform_ajax.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位 ...
- yii2基础之modal弹窗的基本使用
2019独角兽企业重金招聘Python工程师标准>>> Modal也即是模态窗,通俗的说就是弹窗.是一款bootstrap的js插件,使用效果也是非常好. 为什么要使用modal就不 ...
- 微信公众号php提交表单,PHP教程:使用YII2框架实现微信公众号中表单提交功能...
<PHP教程:使用YII2框架实现微信公众号中表单提交功能>要点: 本文介绍了PHP教程:使用YII2框架实现微信公众号中表单提交功能,希望对您有用.如果有疑问,可以联系我们. 相关主题: ...
- jQuery表单验证实例 / 包含用户名、密码、住址、邮箱验证
jQuery表单验证实例 / 包含用户名.密码.住址.邮箱验证 如下图 别忘了引入jQuery框架!!! 话不多说直接先上jQuery部分代码: <script type="text/ ...
- ajax提交表单跨域啊,form表单提交没有跨域问题,但ajax提交存在跨域问题
浏览器的策略本质是:一个域名下面的JS,没有经过允许是不能读取另外一个域名的内容,但是浏览器不阻止你向另外一个域名发送请求. 所以form表单提交没有跨域问题,提交form表单到另外一个域名,原来页面 ...
- html input validator,BootstrapValidator 表单验证超详要怎么做?表单验证超详细教程 !...
我们在接触Bootstrap的时候总会遇到不同的问题和困难,今天我们就来说说有关于"BootstrapValidator 表单验证超详要怎么做?"这个问题.下面是小编整理的有关于这 ...
- float js 正则 验证_使用HTML和Vuejs进行表单验证
他们说大多数网络应用只是HTML表单.好吧,表单需要验证,谢天谢地,HTML5带有许多优秀的内置表单验证功能,可用于电子邮件,数字,最大值,分钟等.您甚至可以使用模式编写自己的验证规则.在本文中,我将 ...
- bootstrap的表单验证 vue_第45天:Web表单
在了解了 Flask Bootstrap 基本框架之后,我们来了解一下 Flask 框架的 表单( form ),以帮助我们创建交互式的 Web 应用,最后会有个提交个人信息的例子. Flask-WT ...
- php表单验证内容不能为空,php校验表单检测字段是否为空的方法_PHP教程
php校验表单检测字段是否为空的方法 这篇文章主要介绍了php校验表单检测字段是否为空的方法,涉及php验证表单的技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了php校验表单检测字段是否 ...
最新文章
- SQL Server DB Link相关
- bzoj异或之[查询异或和的第k小]
- 递归二分查找时间复杂度、空间复杂度和稳定性
- 正则化与特征稀疏,过拟合
- 科研狗的国庆与普通人的国庆有什么不同?
- SaltStack部署
- 玻璃体混浊当前的治疗方案汇总
- 关于逐项作用函数的用法
- defaultdict python_理解 Python 语言中的 defaultdict
- 中间人攻击 - 攻防
- JavaScript数据结构与算法 - 散列表
- 了解速率控制模式Rate Control Mode-CBR,VBR,CRF(x264、x265、vpx)
- NOIP2017提高组广东省成绩
- 列宁名言、警句、格言、语录
- 大陆资金港股打新股亲身体验全流程
- CSP 2018-9-4 再卖菜 搜索 + 剪枝
- 阿里云ECS主机部署LAMP环境
- Restful API 生成复杂Json数据结构及使用客户端解析该数据结构(三)
- WebDAV之葫芦儿·派盘+SwiftScan
- 线性代数常用基本知识整理