npm 包 form-validity-state 使用教程

阅读时长 10 分钟读完

前端开发当中,表单验证是一个必不可少的功能,用户输入的数据往往需要进行格式、内容等方面的检查,以保证数据的合法性和准确性,从而提升用户体验。而 npm 包 form-validity-state 正是一款能够帮助前端开发者实现表单验证的工具。

简介

form-validity-state 是一个用于表单验证的 npm 包,其主要功能包括:

  • 表单验证状态的维护:对表单中的输入框进行验证,记录验证结果;
  • 验证错误的提示:对验证失败的表单项进行错误信息的提示;
  • 回调函数的触发:当表单验证通过或者未通过时,form-validity-state 将触发相应的回调函数。

安装

要使用 form-validity-state,需要在项目中安装该 npm 包:

引入

安装成功后,需要使用 import 或 require 引入该模块,然后使用该模块中提供的方法进行表单验证。

使用方法

初始化

在表单验证前,需要对 form-validity-state 进行初始化。初始化方法如下所示:

其中,formElement 参数表示表单元素 - 即包含表单板块的 form 元素,需要使用 document.querySelector 或类似方法获取。

表单初始化后,formState 中包含了当前表单元素的验证状态,以及对应的种类和错误信息。

对于表单初始化后的状态,可以使用以下方法获取:

获取表单状态

getFormState() 方法用于获取 form 验证状态:

返回值为 form 的验证状态,格式如下:

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

在 formState 中,$form 表示 form 表单标签的验证状态,包含 valid 和 invalid 两个属性,分别对应验证成功和验证失败。 $inputs 表示表单中各项输入框的状态信息。

在 $inputs 中,每个元素信息包含了输入框的验证状态、校验规则和错误信息,以及对应的 input 元素和信息提示元素。

添加校验规则

为了完成校验,需要配置相应的校验规则。可以使用 addRule(inputName, rule) 方法来给表单项添加校验规则。

其中,第一个参数 inputName 为表单项的名称,第二个参数规定了需要执行的校验方法和错误提示信息。

$inputs 中的元素信息会更新,添加了该 inputName 对应的校验规则:

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

触发校验

在上述的过程中,已经为表单项添加了校验规则,但在表单提交之前需要触发表单校验。

使用 validate(callback) 函数可以触发校验,验证结果将会被回调函数所接收。

错误提示

当一个表单项校验不通过时,需要对这个表单项进行错误提示,这将来自于校验规则中的 message。 form-validity-state 库会自动在该表单之后添加一个错误提示。

如果想要对错误提示进行自定义修改和样式展示,可以通过类选择器进行修改。

示例代码

下面是一个简单的实例代码,用于演示如何使用 form-validity-state 进行表单验证:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

在代码运行之后,我们可以得到一个典型的表单页面。如果没有输入任何数据,或者输入的数据不符合校验规则,会出现如下的提示信息。

通过使用 form-validity-state,可以为前端开发者提供便捷的表单验证方法,进而提升用户体验。

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

纠错
反馈