npm 包 form-spine 使用教程

阅读时长 8 分钟读完

介绍

form-spine 是一个轻量级的 javascript 库,用于处理前端表单。它的体积很小(只有 3KB)并作为一个 npm 包发布。主要特点是:

  • 支持表单验证
  • 支持自定义验证规则
  • 支持异步验证
  • 支持表单序列化
  • 支持表单数据封装

安装

你可以使用 npm 安装它,或者将其添加到你的 package.json 中:

或者使用 Yarn:

当然,你可以直接将 form-spine 下载下来,然后在页面中引入代码:

快速上手

form-spine 的使用非常简单。按照以下步骤进行:

  1. 使用 form-spine 初始化一个表单;
  2. 添加验证规则;
  3. 注册表单提交事件;
  4. 编写表单提交事件处理函数。

下面将为你演示详细的例子。

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

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

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

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

这个例子演示了如何使用 form-spine 创建一个表单并添加一些验证规则。当表单提交时,它输出了表单数据到控制台中。

在代码中,我们首先初始化表单对象,并添加了一些验证规则。这些规则定义了表单数据应该如何验证,以便检查是否符合要求。此外,我们还添加了一个自定义验证规则 password_match,以确保两次输入的密码必须相同。

最后,我们向表单注册了一个 onSubmit 事件处理函数。这个函数将在表单提交时被调用,并将表单数据作为参数传递给它。

详细使用说明

初始化表单

你可以使用 FormSpine 构造函数将一个表单转换为 form-spine 表单对象。可以通过以下三种方式将一个表单初始化为 form-spine 表单对象:

  • new FormSpine(selector):使用一个 CSS 选择器来选取表单元素;
  • new FormSpine(element):使用一个 DOM 元素来选取表单;
  • new FormSpine(formObject):使用一个表单 DOM 元素 Object 来实例化表单。

在这个例子中,我们用 CSS 选择器 #my-form 来选择表单元素,然后创建了一个 form-spine 表单对象 myForm

添加验证规则

form-spine 中为表单元素添加验证规则,以保证表单数据的有效性。你可以使用 addRule() 实例方法来添加验证规则。addRule() 方法接受两个参数:namerule

  • name:表示表单元素的名称。
  • rule:表示该表单元素的验证规则。

这里有一些例子:

你还可以添加多个规则:

这里 foo 必须不为空,则长度应至少为 6。

自定义验证规则

如果你需要更复杂的验证规则,你可以添加自定义验证规则。使用 addCustomRule() 实例方法来添加自定义验证规则。addCustomRule() 方法接受两个参数:

  • name:验证规则的名称。
  • ruleFunction:验证函数。
-- -------------------- ---- -------
------------------------------ -------- ------- ----- -
  -- ----- ---------
  -- ---- -------
  -- ------ --- ------ -
    ------ -------- -------
  -
---

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

在这个例子中,我们添加了一个自定义规则 myRule,它将拒绝值为 "foo" 的输入。最后,将 myRule 添加到一个表单元素上。

你也可以使用 .removeRule() 实例方法来从表单中移除验证规则。

异步验证

对于一些验证规则可能需要网络请求等操作,可以使用异步验证方式,即验证函数执行异步操作。form-spine 支持异步验证:

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

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

在这个例子中,我们添加了一个自定义规则 username-checker 来验证用户名是否唯一。这里使用了异步操作,所以验证函数需要传递一个回调函数。如果验证通过,回调函数应该被调用而不带任何参数。错误信息应该作为回调函数的参数传递。

注册表单提交事件

使用 onSubmit() 实例方法来注册表单提交事件。

表单序列化

表单序列化是将表单数据转换为一组键/值对的过程。你可以使用 serialize() 实例方法将表单数据序列化。

当表单数据被序列化时,serialize() 方法将返回一个对象,它包含了表单元素的名称和值。

表单数据封装

数据封装将处理序列化过程,并在此基础上对表单数据进行进一步的处理。form-spine 支持数据封装功能:

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

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

在这个例子中,我们首先添加了一个封装器函数,该函数将在表单数据序列化后被调用。它将表单数据进行进一步处理,然后返回一个对象。

最后,我们使用新的 serializeEnclosed() 实例方法来将处理过的数据序列化。

结论

form-spine 是一个小而灵活的验证库,用于处理前端表单。它的 API 易于使用,允许你轻松地创建和验证表单。同时,它还支持自定义验证规则、异步验证等高级特性,以帮助你构建更具复杂性的表单验证。

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

纠错
反馈