资讯专栏INFORMATION COLUMN

Angular表单验证器

lncwwn / 348人阅读

摘要:表单验证器为何使用验证器原因用户输入的数据各式各样并不总是正确的如果用户输入了错误的数据格式那么我们希望给他们提供实时正确的反馈并且阻止表单的提交因此我们需要验证器来处理这些情况验证器验证器由模块提供该模块从中导出使用验证器的方法为对象指定

Angular 表单验证器 为何使用验证器?

原因: 用户输入的数据各式各样,并不总是正确的,如果用户输入了错误的数据格式,那么我们希望给他们提供实时正确的反馈,并且阻止表单的提交.因此,我们需要验证器来处理这些情况.

Angular 验证器

1.验证器由Validators模块提供,该模块从"@angular/forms"中导出

import { Validators }from"@angular/forms"

2.使用验证器的方法

// 为FormControl对象指定一个验证器
// 在视图中检查验证器的状态,并根据返回值做出反应
例子1:
    let control = new FormControl("name", Validators.required);
例子2:
    this.myForm = this.fb.group({
        "name": ["", Validators.required]
    });

3.验证器可以验证的信息

// 检查单个字段的有效性
方式一: myForm.controls["name"].hasError("");
方式二: myForm.hasError("", "name");
// 检查整个表单的有效性
myForm.valid   // 整个formGroup是否可用
myForm.dirty   // 是否被修改过
myForm.touched // 是否提交过
自定义验证器

1.首先查看Angular源代码,例如Validators.required:

export class Validators {
    static required(c: FormControl): StringMap {
        return isBlank(c.value) || c.value == "" ? { "required": true } : null;
    }
}

2.编写自定义验证器

// name必须以"zhou"开头
function nameValidator(control: FormControl): { [s: string]: boolean } {
    if (!control.value.match(/^zhou/)) {
        return { invalidName: true };
    }
}
// 使用方法
this.myForm = this.fb.group({
    "name": ["", [Validators.required, this.nameValidator]]
});

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/92591.html

相关文章

  • angular表单验证2

    摘要:表单验证使用场景在实际的开发中我们可能会有这样的情况。姓名不能为空姓名太短姓名太长姓名不能为空姓名太短姓名太长借助表单本身比之前的更简单了。结尾以上就是关于表单验证的全部内容。 前言 在之前的文章《angular表单验证》中主要介绍了一些关于angular表单验证的基础知识。在此篇中将着重以扩展angular表单验证的相关内容和实际开发中的应用为主。 表单验证使用场景1 在实际的开发...

    darkbug 评论0 收藏0
  • angular6的响应式表单

    摘要:在模块里面引入要使用响应式表单,就要从包中导入,并把它添加到你的的数组中。导入验证器函数响应式表单包含了一组开箱即用的常用验证器函数。这些验证器属性可以和响应式表单提供的内置验证器组合使用。 1:在AppModule模块里面引入 ReactiveFormsModule 要使用响应式表单,就要从@angular/forms包中导入ReactiveFormsModule,并把它添加到你的N...

    alogy 评论0 收藏0
  • angular6的响应式表单

    摘要:在模块里面引入要使用响应式表单,就要从包中导入,并把它添加到你的的数组中。导入验证器函数响应式表单包含了一组开箱即用的常用验证器函数。这些验证器属性可以和响应式表单提供的内置验证器组合使用。 1:在AppModule模块里面引入 ReactiveFormsModule 要使用响应式表单,就要从@angular/forms包中导入ReactiveFormsModule,并把它添加到你的N...

    hzc 评论0 收藏0
  • angular6的响应式表单

    摘要:在模块里面引入要使用响应式表单,就要从包中导入,并把它添加到你的的数组中。导入验证器函数响应式表单包含了一组开箱即用的常用验证器函数。这些验证器属性可以和响应式表单提供的内置验证器组合使用。 1:在AppModule模块里面引入 ReactiveFormsModule 要使用响应式表单,就要从@angular/forms包中导入ReactiveFormsModule,并把它添加到你的N...

    MycLambert 评论0 收藏0

发表评论

0条评论

lncwwn

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<