angular 表单操作

  一直没有使用angular的表单验证以及表单提交数据。只是用的input绑定值,另外最近的设计都是点击后显示错误,而不是自动显示错误。所以错误显示一直也没有做。而表单的非法验证可以直接解决这个问题。angular 5最近更新的跟表单验证有关。导致我想研究下angular的表单操作。把web移动端的表单验证添加上。而我的随笔基本都写我不熟悉,我熟悉的,感觉舒适的都不会写。

  通过keyup事件,获取用户输入。所有标准DOM事件对象都有一个target属性,引用触发该事件的元素。event.target.value返回该元素的当前内容。可以用event.key获取按键本身。

  传入$event是靠不住的做法。典型化事件对象揭露了重要的一点,即反对把整个DOM事件传到方法中,因为这样组件会知道太多模板的信息。只有当它知道更多它本不应该了解的HTML实现细节时,它才能提取信息。这就违反了模板(用户看到的)和组件(应用如何处理用户数据)之间的分离关注原则。

  从一个模板引用变量中获得用户输入。在标识符前加上井号#就能声明一个模板引用变量。这些变量提供了从模板中直接访问元素的能力。除非绑定了一个事件,否则这将无法工作。只有在应用做了些异步事件(如击键),angular才更新绑定(并最终影响到屏幕)。

@Component({
  selector: ‘app-loop-back‘,
  template: `
    <input #box (keyup)="0">
    <p>{{box.value}}</p>
  `
})
export class LoopbackComponent { }

  上例代码将keyup事件绑定到了数字0,这是可能是最短的模板语句。虽然这个语句不做声明,但它满足angular的要求,所以Angular将更新屏幕。从模板变量获得输入框比通过$event对象更加简单。这个方法最漂亮得一点是:组件代码从视图中获得了干净的数据值。再也不用了解$event变量及其结构了。

  按键事件过滤(通过key.enter)。keyup事件处理器监听每一次按键。有时我们只需要在意回车键。因为它标志用户结束输入。解决这个问题得一种方法是检查每个$event.keyCode,只有键值是回车键时才采取行动。更简单的方法是:绑定angular的keyup.enter模拟事件。然后,只有当用户敲回车键时,Angular才会调用事件处理器。可以应用在用户登录位置。

  也可以使用失去焦点事件(blur)更新用户输入的值。

  这些技术对于小规模演示很实用,但是在处理大量用户输入时,很容易变得累赘和笨拙。要在数据录入字段和模型属性之间传递数据,双向数据绑定是更加优雅和简洁的方式。

  如果某个组件、指令或者管道是属于imports中所导入的某个模块的,那就不必要再把它声明到本模块的declarations数组中。在模板驱动表单中,只要导入了FormsModule就不用对<form>做任何改动来使用FormsModule.

  Angular会在<form>标签上自动创建并附加一个NgForm指令。NgForm指令为form增补了一些额外特性。它会控制那些带有ngModel指令和name属性的元素,监听他们得属性(包括其有效性)。它还有自己得valid属性,这个属性只有在属性全部有效时才会是真。

  在表单中使用ngModel可以获得比仅使用双向数据绑定更多的控制权。它还会告诉我们很多信息:用户碰过此控件吗?它得值变化了吗?数据变得无效了吗?ngModel指令不仅仅跟踪状态。它还使用特定的angular css类来更新控件,以反映当前状态。可以利用这些CSS类来修改控件的外观,显示或隐藏消息。

状态 true,className false.className
控件被访问过 ng-touched ng-untouched
控件值变化了  ng-dirty ng-pristine
控件的值有效   ng-valid ng-invalid

待续。。。。

时间: 2024-11-07 02:13:03

angular 表单操作的相关文章

Hibernate表单操作

1.单一主键 assigned(由java程序生成标识符) native(由数据库自动生成标识符,例如MySQL就是increment.Oracle就是sequence) 2.基本类型 hibernate映射类型 java类型 sql类型 大小 integer/int  java.lang.Integer/int INTEGER  4 btye long  java.lang.Long BIGENT 8 short java.lang.Short  SMALLINT 2 float java.l

表单操作

# 表单操作     1. ## 表单的引用:</br>             1)直接定位: id / name/ tagname             2)集合方式:                         document.forms[index];通过下标                        document.forms["表单name名"];                        document.forms."表单name

JavaScript-4.1-简单的表单操作,函数使用方法---ShinePans

<html> <head> <meta http-equiv="content-type" content="text/html;charset=GB2312"/> <title> 4.1 确认表单必填项目完整性 </title> <!--脚本部分--> <script type="text/javascript"> function check_submit()

jqm文件上传,上传图片,jqm的表单操作,jqm的ajax的使用,jqm文件操作大全,文件操作demo

最近在论坛中看到,在使用html5中上传图片或文件,出现各种问题.这一方面,我也一直没有做过,今天就抽出了一点时间来学习一下.现在的示例已经ok了,我就给大家分享一下,希望对大家有帮助. 好吧,我们先看看效果截图吧: 还行吧,来看页面代码: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <h

数据交互和表单操作

今天是上班的第42天,对于一个程序媛来说,不管之前你学了多少年的知识,真正的时间,都应该是从上班开始算起的,因为上班才是敲代码的开始,木有实践,一切的理论对于程序媛来说都是扯淡~ 好啦!今天学到了很多的东西,必须在这儿记录一下! 当实现和后台的数据交互时,如果后台返回给我们的是一个数组,里面的值就像这样子,然后前台就不能在JS中像常规那样在构建里面中调后台的参数,看下面的详解吧~ 常规的时候后台返回的数据是这样的: 然后我们在前台js构建页面的时候是这样子写的: 但是如果后台今天不这样给你反了呢

Django之form表单操作

小白必会三板斧 from django.shortcuts import render,HttpResponse,redirect HttpRespone:返回字符串 render:返回html页面 redirect:重定向 静态文件配置 静态文件:网站所用到的,自己写好js,自己写好css,第三方的框架bootstrap fontwesome sweetalert 通常情况下网站所用到的静态文件资源统一都放在static文件下 STATIC_URL='/static' 是访问静态资源的接口前缀

【JavaScript】DOM之表单操作

DOM 表单操作 1.获取表单 获取表单元素 以Document对象中forms属性来获取当前HTML页面所有表单集合以Document对象中表单的name属性值来获取表单元元素 <body> <form action="#"> <input type="submit"> </form> <form name="mylove" action="#"> <inpu

Angular表单验证

在使用 AngularJS 进行开发的时候,表单填写是一个很常见的需求,而表单验证又是比较让人头疼的部分,本文对此做一个总结. 在 Angular 的视图中使用的 form 已经不是 HTML 中的普通 form 了,而是一个被 Angular 封装过的指令.它可以完成普通 form 无法实现的功能,比如 form 嵌套,而且自带强大的验证功能. Angular 在对表单进行校验的时候会使用 ngModelController 上的属性,如果不设置 ng-model,则 Angular 无法知道

表格、表单操作

(一)表格操作 方法:tHead ==>表格头tBodies ==>表格正文(可以有多个)(在js中如果不写,自动会添加,易出错)tFoot ==>表格尾rows ==>行cells ==>列eg:oTab.tBodies[0].rows[1].cells[1].innHTML(获取表格的第一个正文的第二行第二列的内容)=oTab.children[0].children[1].children[1].innHTML (二)表单操作<form id='form1'>