Angular 表单验证的详细教程

阅读时长 9 分钟读完

Angular 是目前非常流行的前端框架之一,同时也对表单验证提供了非常好的支持。在现代 Web 应用中,表单是非常重要的一部分,因此 Angular 的表单验证机制也非常重要。在本文中,我们将教您如何使用 Angular 实现表单验证。

安装 Angular

在开始之前,您需要安装 Angular。您可以使用 npm 在命令行中安装 Angular。

安装完成后,您可以使用 ng 命令来创建新的 Angular 应用程序。

接下来,切换到新创建的应用程序目录中。

基本的表单验证

在 Angular 中,表单验证通过所谓的“指令”来实现。表单指令可以用来监控和控制表单输入,帮助您确保用户通过表单输入正确的数据。最简单的指令是 Required 指令,它要求用户输入必填字段。

首先,我们需要导入 FormModule 模块。您可以在 app.module.ts 文件中实现这一点。

-- -------------------- ---- -------
------ - -------- - ---- ----------------
------ - ------------- - ---- ----------------------------
------ - ----------- - ---- -----------------
------ - ------------ - ---- ------------------

-----------
  -------- -
    --------------
    -----------
  --
  ------------- -
    -------------
  --
  ---------- --------------
--
------ ----- --------- - -

接下来,我们需要在 HTML 文件中添加表单元素。我们将创建一个简单的联系表单,并添加一些验证。我们将在此使用 Angular 模板语法。

-- -------------------- ---- -------
----- ----------------------
  -----
    ------ --------------------- -------------
    ------ -----------
           --------------
           ----------------
           -----------------------
           --------
           --------------
  ------

  -----
    ------ ------------------- -------------
    ------ -----------
           -------------
           ---------------
           ----------------------
           --------
           --------------
  ------

  -----
    ------ --------------------------
    ------ ------------
           ----------
           ------------
           -------------------
           ---------
  ------

  ------- ------------- -----------------------------------------------
-------

现在让我们来学习一下这个模板。我们使用 ngForm 指令来创建一个表单,使用两个 div 来表示两个字段,firstName 和 lastName。对于每个字段,我们设置了一个唯一的 id 和 name。此外,我们通过添加 [(ngModel)] 属性将这两个字段绑定到 Angular 组件中的成员变量。要求必填字段是通过在 input 元素上添加 required 属性来实现的。

现在,如果我们运行应用程序并尝试提交空表单,则会在表单上显示错误消息。

高级的表单验证

Angular 还支持更复杂的表单验证,如比较两个字段的值,如密码和确认密码。

-- -------------------- ---- -------
----- -------------------- --------------------------------
  -----
    ------ --------------------- -------------
    ------ -----------
           --------------
           ----------------
           -----------------------
           --------
           --------------
  ------

  -----
    ------ ------------------- -------------
    ------ -----------
           -------------
           ---------------
           ----------------------
           --------
           --------------
  ------

  -----
    ------ --------------------------
    ------ ------------
           ----------
           ------------
           -------------------
           ---------
  ------

  -----
    ------ --------------------------------
    ------ -----------
           -------------
           ---------------
           ----------------------
           --------
           --------------
  ------

  -----
    ------ --------------------------------
    ------ ---------------
           -------------
           ---------------
           ----------------------
           --------
           --------------
  ------

  -----
    ------ ----------------------------- -----------------
    ------ ---------------
           --------------------
           ----------------------
           -----------------------------
           --------
           --------------
  ------

  ---- ------------------------------------------ --- --------------------------------------------
    --- --------- -- --- ------
  ------

  ------- ------------- ----------------------------------------------
-------

与前面的示例类似,我们首先创建了一个表单并添加了一些必填字段,如 firstName、lastName、email、username 等。对于密码和确认密码,我们添加了一个必填字段和长度限制。最后,我们添加了一个额外的 div,用来计算一个自定义的表单验证,以确保密码与确认密码匹配。

在 Angular 中,要比较两个表单字段需要使用 FormGroup 和 FormControl。

我们首先需要修改我们的组件类,以创建一个嵌套的 FormGroup 和两组 FormControl 对象。

-- -------------------- ---- -------
------ - --------- - ---- ----------------
------ - ---------- ------------ ---------- - ---- -----------------

------------
  --------- -------------
  ------------ -------------------------
--
------ ----- --------------- -
  ----------- ----------

  ------------------- ------------ ------------ - -

  ---------- -
    --------------- - ------------------------
      ---------- ---- ---------------------
      --------- ---- ---------------------
      ------ ---- ---------------------
      --------- ---- ---------------------
      --------- ---- --------------------- --------------------------
      ---------------- ---- --------------------- -------------------------
    ---
  -

  ------------ ---------- -
    -- ------------ -
      ------------------
    -
  -
-

正如我们所看到的,我们现在将 signupForm 指定为 FormGroup,然后在构造函数中使用 FormBuilder 来创建它。

FormGroup 可以包含多个 FormControl 对象,每个 FormControl 表示表单的一个输入字段。在示例中,我们使用了两个 FormControl,password 和 confirm password。为了比较这两个字段,我们添加了一个函数来计算表单验证,并在 HTML 模板中使用它。

总结

表单验证是 Web 应用程序中重要的一部分,Angular 已经提供了非常好的支持。通过使用 Angular 表单验证指令,您可以轻松确保您的用户输入了正确的数据。这篇文章就介绍到这里,我们通过几个示例和代码演示了 Angular 表单验证的基本和高级特性。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64704b39968c7c53b0e6cb3e

纠错
反馈