Angular 开发小妙招1:提交表单数据验证不通过,更改输入组件的样式
开发表单时,客户端数据完整性校验是必不可少的,在jquery 时代出现了无数的数据验证插件也很好用,开发Angular 应用时,angular 内置了一些常用的数据验证指令。今天要讲的不是这些指令如何使用,今天讲什么呢,今天讲一些关于验证样式的问题,相关的基础知识在angular.cn 官方文档中都有介绍,在此就不多说了。但还有一些小的易用性方面的没有在文档中指出。
比如:设置了必填后 (就是在input 中增加 required 属性),表单加载完毕后,还没有做任何操作时(无任何的键盘及鼠标操作),input 控件自动的改变了样式,比如红色边框,而我想着是在input 失去焦点后在添加红色的边框,这种情况咋搞呢,经过细致的参考官方文档,我们可以设置样式来达到这个效果,如:
.form-control.ng-invalid.ng-touched { border-color: red; }
ng-invalid: 数据验证不通过时添加的样式名
ng-touched:失去焦点后添加的样式名
添加以上样式后,只有当input 失去焦点并且数据验证不通过时边框的颜色 才会为红色。
如果表单加载完成后,我们直接点击提交按钮会怎样呢,假设我们的提交代码如下
public btnSubmit() {
if ( this.frm.valid ) {
......
}
}
此时表单的验证状态肯定是false , 数据验证失败,而控件上又没有提示,怎么办? 通过查看浏览器源代码发现input 中没有ng-touched 样式,如何添加上这个呢?各种百度 google 后得出,需要循环from 中的所有control,并调用每个control的markAsTouched 方法 代码大至如下:
public btnSubmit() {
Object.values( this.frm.controls).forEach( (c:FormControl) => c.markAsTouched()); // 添加这一句后,验证失败的input 会添加 ng-touched 样式,控件的边框就会变红了
if ( this.frm.valid ) {
......
}
}
没啥高深的内容,废话有点多,就这样吧
Angular 开发小妙招1:提交表单数据验证不通过,更改输入组件的样式的更多相关文章
- Web开发小妙招:巧用ThreadLocal规避层层传值
摘要:我们可以在处理每次请求的过程中,无需从Controller以及Service中的方法层层传值,只需要直接通过该局部变量取值即可. 本文分享自华为云社区<拦截器中巧用ThreadLocal规 ...
- jsp提交表单数据乱码,内置对象,以及过滤器
jsp提交表单数据乱码解决方案 通过form表单给服务器提交数据的时候,如果提交的是中文数据,那么可能会出现乱码,如果表单的请求方式是post请求,那么可以使用如下方案解决乱码: 在调用getPara ...
- ajax提交表单无法验证easyui的验证选项(比如required等)
在实际开发中,遇到ajax方式提交表单没法验证easyui的验证选项,这对实际用户体验造成了很大的困扰.当然,这也是理所当然的事情. 解决办法:使用jquery中ajax的beforeSend事件 ...
- ASP.NET 程序提交表单数据中带有html标签不能提交或者提交报错问题
今天在公司做另外的一个项目,又奇葩的遇到一个问题. 在本地自己电脑上怎么测试都是正常的.但是先上服务器就出问题: 用富文本编辑器上传一篇文章,始终报错,又没提示具体什么错误,也没说代码错误,点击提交按 ...
- JSON编码格式提交表单数据详解
以JSON编码格式提交表单数据是HTML5对WEB发展进化的又一大贡献,以前我们的HTML表单数据是通过key-value方式传输的服务器端,这种形式的传输对数据组织缺乏管理,形式十分原始.而新出现的 ...
- easyui提交表单数据的时候如何防止二次提交
在前端提交数据的时候有时候可能会由于网络延迟等原因,我们在等待的时候会多次点击保存按钮,这可能会导致我们一次输入的数据多次提交,导致数据重复.最近在做项目的时候碰到了这个问题,先说一点,这个问题的解决 ...
- tomcat中间件提交表单数据量过大警告处理方案
http://www.bubuko.com/infodetail-976418.html http://www.cnblogs.com/yg_zhang/p/4248061.html tomcat中间 ...
- Spring Boot(三):RestTemplate提交表单数据的三种方法
http://blog.csdn.net/yiifaa/article/details/77939282 ********************************************** ...
- php表单数据验证类
非常好用方便的表单数据验证类 <?php //验证类 class Fun{ function isEmpty($val) { if (!is_string($val)) return false ...
随机推荐
- 【转】JQuery上传插件Uploadify使用详解及错误处理
转自:http://www.jb51.net/article/43498.htm 关于JQuery上传插件Uploadify使用详解网上一大把,基本上内容都一样.我根据网上的步骤配置完成后,会报一些错 ...
- Jquery操作ul的一些操作笔记
1.html标记 <ul id="attachText"> <li data-text="111"><a href="# ...
- 月薪15k的测试员需要学习什么技术?
想了很久,决定还是要写一篇这样的文章出来,月薪15k的测试员需要学习什么技术?我觉得测试想要月薪15k并不难,只要做到我说的这几点肯定是可以的! 克服懒惰 我觉得,越是聪明的人越是觉得自己“懒惰”.大 ...
- SpringBoot史前简述
背景 大约20年前,程序员们使用“企业级Java Bean”(EJB)开发企业应用,需要配置复杂的XML. 在二十世纪初期,新兴Java技术——Spring,横空出世.使用极简XML和POJO(普通J ...
- Hibernate-在Eclipse(Oxygen)中安装Hibernatetools插件
Eclipse(Luna)中是没有Hibernate插件的,该插件是需要自己进行添加. 在网上找了一下关于如何在Eclipse中安装Hibernatetools插件的方法,很多都是先找到Hiberna ...
- python基础学习(二)注释和算术运算符
注释 1. 注释的作用 注释就是对某些代码进行标注说明,以增强代码的可读性.我们在写程序的时候,编写的某一部分代码的意图不太明显,这时候就需要对这一部分代码加以说明,来明确这一部分到的意图.一般的编程 ...
- IP是什么 DNS 域名与IP有什么不同
IP地址是在网络上分配给每台计算机或网络设备的32位数字标识.在Internet上,每台计算机或网络设备的IP地址是全世界唯一的.IP地址的格式是 xxx.xxx.xxx.xxx,其中xxx是 0 到 ...
- redux 入门
背景: 在react中使用redux 重点:不要滥用redux,如果你的页面非常简单,没有 那么多的互动,那么就不要使用redux,反而会增加项目的复杂性. 如果你有以下情况,则可以考虑使用redux ...
- H5_canvas与svg
Canvas 什么是canvas: HTML5 的 canvas 元素是使用 JavaScript 在网页上绘制图像,canvas 元素本身是没有绘图能力的,所有的绘制工作必须在 JavaScript ...
- MVC模式-----struts2框架(2)
MVC模式-----struts2框架 第一个struts2程序 struts2框架是通过一个过滤器将struts2集成到Web应用程序中的,这个过滤器的对象是StrutsprepareAndExec ...