博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
yii2 modal弹窗之ActiveForm ajax表单异步验证
阅读量:5989 次
发布时间:2019-06-20

本文共 787 字,大约阅读时间需要 2 分钟。

作者:白狼 出处: 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

前面我们讲述了以及,本以为modal要告一段落可以开始新的话题了,但是实际问题往往超乎想像,这不modal弹窗提交的表单说是怎么验证的问题又出来了,又出来了!

该问题的实质其实与modal的关系倒不大,其问题的核心在于ActiveForm的异步验证上,解决了首要矛盾,我们本篇文章的问题也就迎刃而解了。顺便再叨唠一句,modal确实没啥好说了。后面若是有我再把话改回来。

yii2中,ActiveForm默认做了客户端验证,但是表单的提交,却不是无刷新的。也就是常常看到的表单提交后页面会刷新。如果想要开启无刷新的模式,只需要在ActiveForm开始开启enableAjaxValidation即可,像下面这样

'form-id', 'enableAjaxValidation' => true, 'validationUrl' => Url::toRoute(['validate-form']), ]); ?>

注意哦,id和enableAjaxValidation一个都不能少。

关于validateUrl我们做一个说明。如果你不设置该参数,该地址默认是你当前路由,而又恰巧你当前路由就是表单form的action,你会很好奇的发现,当表单项input失去焦点的时候,你对数据的修改已经提交到后端进行了处理了?这往往不是我们想要的,此时就需要给validateUrl设置一个路由地址,其所要请求的操作的意义就在于异步做验证!我们看具体实现:

[考虑目前国内网站大部分采集文章十分频繁,更有甚者不注明原文出处,原作者更希望看客们查看原文,以防有任何问题不能更新所有文章,避免误导!]

你可能感兴趣的文章
Centos 安装python BeautifulSoup模块(实践)
查看>>
window.open详解
查看>>
Python函数
查看>>
java 窗口中的动态效果
查看>>
获取包名+activity
查看>>
Maven整合ssm框架入门01
查看>>
Qt界面编程基本操作
查看>>
appium 获取app的应用包名package和activity
查看>>
VMware安装步骤既常见问题
查看>>
第二次尝试
查看>>
css三
查看>>
Git版本回退和撤销修改的区别
查看>>
golang--性能测试和分析
查看>>
C#自定义分页方法二
查看>>
bzoj1855: [Scoi2010]股票交易
查看>>
Android APK反编译
查看>>
在Web Service中傳送Dictionary
查看>>
专为沉浸式游戏体验而设计的VR触觉反馈背心来了
查看>>
Java设计模式--适配器模式
查看>>
Python.SourceCodeSearchEngine
查看>>