前面我们讲述了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表单异步验证相关推荐

  1. yii2 modal弹窗之ActiveForm ajax表单异步验证

    作者:白狼 出处:http://www.manks.top/yii2_modal_activeform_ajax.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位 ...

  2. yii2基础之modal弹窗的基本使用

    2019独角兽企业重金招聘Python工程师标准>>> Modal也即是模态窗,通俗的说就是弹窗.是一款bootstrap的js插件,使用效果也是非常好. 为什么要使用modal就不 ...

  3. 微信公众号php提交表单,PHP教程:使用YII2框架实现微信公众号中表单提交功能...

    <PHP教程:使用YII2框架实现微信公众号中表单提交功能>要点: 本文介绍了PHP教程:使用YII2框架实现微信公众号中表单提交功能,希望对您有用.如果有疑问,可以联系我们. 相关主题: ...

  4. jQuery表单验证实例 / 包含用户名、密码、住址、邮箱验证

    jQuery表单验证实例 / 包含用户名.密码.住址.邮箱验证 如下图 别忘了引入jQuery框架!!! 话不多说直接先上jQuery部分代码: <script type="text/ ...

  5. ajax提交表单跨域啊,form表单提交没有跨域问题,但ajax提交存在跨域问题

    浏览器的策略本质是:一个域名下面的JS,没有经过允许是不能读取另外一个域名的内容,但是浏览器不阻止你向另外一个域名发送请求. 所以form表单提交没有跨域问题,提交form表单到另外一个域名,原来页面 ...

  6. html input validator,BootstrapValidator 表单验证超详要怎么做?表单验证超详细教程 !...

    我们在接触Bootstrap的时候总会遇到不同的问题和困难,今天我们就来说说有关于"BootstrapValidator 表单验证超详要怎么做?"这个问题.下面是小编整理的有关于这 ...

  7. float js 正则 验证_使用HTML和Vuejs进行表单验证

    他们说大多数网络应用只是HTML表单.好吧,表单需要验证,谢天谢地,HTML5带有许多优秀的内置表单验证功能,可用于电子邮件,数字,最大值,分钟等.您甚至可以使用模式编写自己的验证规则.在本文中,我将 ...

  8. bootstrap的表单验证 vue_第45天:Web表单

    在了解了 Flask Bootstrap 基本框架之后,我们来了解一下 Flask 框架的 表单( form ),以帮助我们创建交互式的 Web 应用,最后会有个提交个人信息的例子. Flask-WT ...

  9. php表单验证内容不能为空,php校验表单检测字段是否为空的方法_PHP教程

    php校验表单检测字段是否为空的方法 这篇文章主要介绍了php校验表单检测字段是否为空的方法,涉及php验证表单的技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了php校验表单检测字段是否 ...

最新文章

  1. SQL Server DB Link相关
  2. bzoj异或之[查询异或和的第k小]
  3. 递归二分查找时间复杂度、空间复杂度和稳定性
  4. 正则化与特征稀疏,过拟合
  5. 科研狗的国庆与普通人的国庆有什么不同?
  6. SaltStack部署
  7. 玻璃体混浊当前的治疗方案汇总
  8. 关于逐项作用函数的用法
  9. defaultdict python_理解 Python 语言中的 defaultdict
  10. 中间人攻击 - 攻防
  11. JavaScript数据结构与算法 - 散列表
  12. 了解速率控制模式Rate Control Mode-CBR,VBR,CRF(x264、x265、vpx)
  13. NOIP2017提高组广东省成绩
  14. 列宁名言、警句、格言、语录
  15. 大陆资金港股打新股亲身体验全流程
  16. CSP 2018-9-4 再卖菜 搜索 + 剪枝
  17. 阿里云ECS主机部署LAMP环境
  18. Restful API 生成复杂Json数据结构及使用客户端解析该数据结构(三)
  19. WebDAV之葫芦儿·派盘+SwiftScan
  20. 线性代数常用基本知识整理

热门文章

  1. 怎么查看docker是否启动_怎么查看自己的手机是否支持北斗导航系统
  2. 【LeetCode从零单排】No67.AddBinary
  3. 【Cocos2d实例教程一】xcode5下Cocos2d环境的搭建
  4. 谁动了我的奶酪?--java实例初始化的顺序问题
  5. spring注解源码分析--how does autowired works?
  6. 从0到1,关于产品冷启动阶段。
  7. 【机器学习】什么是机器学习?(下)
  8. 【Python】简单的最优算法函数创建
  9. 元计算:IT巨头的金钱收割机,核武器
  10. JSP JavaBean