用户的视觉提示

HTML5为其输入字段提供:invalid:valid伪选择器。

  1. input[type="text"]:valid {
  2. border: 2px solid green;
  3. }
  4. input[type="text"]:invalid {
  5. border: 2px solid red;
  6. }

不幸的是,这个系统是作用有限,并且将需要更多的操作,才能处理复杂的形式或用户行为。

Angular 2不是编写额外的代码,而是创建和实施自己的CSS类,以管理这些行为,为您提供了几个样式类,已经可以在inputs上使用。

  1. /* field value is valid */
  2. .ng-valid {}
  3. /* field value is invalid */
  4. .ng-invalid {}
  5. /* field has not been clicked in, tapped on, or tabbed over */
  6. .ng-untouched {}
  7. /* field has been previously entered */
  8. .ng-touched {}
  9. /* field value is unchanged from the default value */
  10. .ng-pristine {}
  11. /* field value has been modified from the default */
  12. .ng-dirty {}

记住三对状态:

  • valid / invalid
  • untouched / touched
  • pristine / dirty

这些对可以在您的CSS中使用许多组合,以根据它们代表的三个独立的标志来改变样式。 当输入的状态改变时,Angular将在每个输入上的对之间切换。