npm 包 formulary 使用教程

简介

在前端开发中,表单是最常见的交互方式之一。而 formulary 是一个简化表单开发的 npm 包,它提供了丰富的验证器和自定义组件,使得表单的开发变得更加简单和直观。

安装

使用 npm 进行安装:

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

使用

formulary 主要有两类 API:

  1. 创建表单对象:formulary.createForm(...)
  2. 创建验证器:formulary.createValidator(...)

创建表单对象

首先我们需要引入 formulary

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

然后使用 formulary.createForm(...) 方法创建表单对象:

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

formulary.createForm(...) 方法接收一个对象,其中 fields 属性定义了表单字段,validate 属性定义了表单验证回调,submit 属性定义了表单提交回调。

定义表单字段

表单字段通过一个对象进行定义,其中对象的属性名表示字段名,属性值表示字段的属性:

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

上述代码定义了两个表单字段,分别是 usernamepassword。值得注意的是,每个表单字段都需要指定 labeltyperequiredvalidator 属性:

  • label 属性表示字段标签,用于在表单中进行显示
  • type 属性表示字段类型,目前支持的类型有 textpasswordemailnumber
  • required 属性表示字段是否必填
  • validator 属性表示字段的验证器,可以是一个对象或者一个函数

定义验证器

表单验证器通过一个对象进行定义,其中对象的属性名表示验证器名称,属性值表示验证器函数:

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

上述代码定义了两个验证器,分别是 usernameExistspasswordStrength。值得注意的是,每个验证器都是一个函数,它需要接收一个参数 value,表示输入框的值,并返回一个布尔值,表示验证是否通过。

表单验证与提交

当表单的某个事件触发时,需要调用表单的相应方法来进行验证或提交操作。下面是一些常用的表单方法:

  • form.onChange(name, value):当输入框的值发生改变时,需要调用该方法进行设置值
  • form.onSubmit():当用户点击表单提交按钮时,需要调用该方法进行表单提交操作
  • form.validate():当需要手动对表单进行验证时,需要调用该方法进行验证

当表单验证通过并点击提交按钮时,会调用 submit 属性所指定的回调函数,该函数会接收表单中所有字段的值,以一个对象的形式返回。

创建验证器

formulary.createValidator(...) 方法用于创建验证器,可以用于对单个字段的验证,也可以用于多个字段之间的验证。下面是一个例子:

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

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

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

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

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

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

上述代码定义了两个验证器,分别是 passwordconfirmPassword。其中 password 验证器对密码字段进行了强度验证,包括长度、大小写和数字组合等。而 confirmPassword 验证器则对确认密码字段进行了验证,判断确认密码是否与密码相同。

示例

在以下代码示例中,我将创建一个注册表单,包括用户名、密码和确认密码等字段,同时对这些字段进行验证。

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

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

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

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

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

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

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

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

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

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

上述代码中,我定义了表单字段、表单验证器和表单对象,并通过 form.onChange(...) 方法为每个表单字段设置了一个默认值。然后我通过 form.onSubmit() 方法进行表单提交操作,此时如果表单验证通过,则会触发表单提交回调函数,并将表单中所有字段的值输出至控制台中。

总结

formulary 是一个非常优秀的 npm 包,它提供了丰富的验证器和自定义组件,使得表单开发变得更加简单和直观。通过本篇文章的介绍,相信大家已经对其使用有了更深的了解,希望能够对大家在前端开发中有所帮助。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60065b4ac6eb7e50355dbfbe


猜你喜欢

  • npm 包 premonition 使用教程

    在进行前端开发的过程中,我们经常需要在页面中插入提示信息或者提醒语句,这时候,如果我们手写 HTML 或者 CSS,会很浪费时间。为了更加高效地完成这些工作,我们可以使用 premonition,一个...

    3 年前
  • npm 包 taptype 使用教程

    taptype 是一个用于编写类型安全的测试代码的 npm 包,并且它可以和 Jest、Mocha、AVA 或其他任何测试框架集成使用。taptype 类型的测试可以帮助我们在编写测试代码时更好地理解...

    3 年前
  • npm包underscore-require使用教程

    前言 在前端开发过程中,为了简化代码的撰写和提高代码逻辑的清晰度,我们会经常使用到一些 JavaScript 库,其中的一个非常流行的库就是 underscore.js。

    3 年前
  • npm 包 linq-fns 使用教程

    在前端开发中,我们经常需要对数组或集合进行各种操作,如筛选、排序、求和等,这时候一款强大的操作工具非常有用。这篇文章将介绍一款名为 linq-fns 的 npm 包,它提供了丰富的集合操作方法,可以大...

    3 年前
  • npm 包 oncloud.mobile 使用教程

    前言 随着移动互联网的快速发展,移动应用开发变得越来越重要。oncloud.mobile 是一个针对移动端开发的 npm 包,它包含了各种移动端开发所需要用到的组件、工具和框架。

    3 年前
  • npm 包 sr-cli 使用教程

    在前端开发中,我们需要使用各种工具来完成开发任务。其中,命令行工具是不可或缺的一部分。使用命令行工具可以轻松地实现各种复杂的任务,并大大提高开发效率。在诸多命令行工具中,sr-cli 是一个非常实用的...

    3 年前
  • npm 包 sr-html-webpack-plugin-for-multihtml 使用教程

    前言 随着 Web 技术的不断发展,前端开发方面也越发成熟,而 Webpack 作为一款构建工具受到了越来越多的认可。Webpack 可以通过一系列的插件和 Loader 来实现前端资源的自动化打包、...

    3 年前
  • npm 包 sr-less-base 使用教程

    对于前端开发者而言,npm 是一个非常重要的工具。在日常开发中,我们需要使用大量的第三方依赖包来提高开发效率。其中,sr-less-base 是一个非常好用的 npm 包,它提供了丰富的样式库,可以让...

    3 年前
  • npm 包 vue-getset 使用教程

    在 Vue.js 中,有时候我们需要在组件之间传递数据,但是这些组件没有共同的祖先组件。这时候最简单和方便的方式就是使用一个全局对象进行数据交换。但是这种方式会导致全局状态污染,并且不利于代码的维护和...

    3 年前
  • npm 包 webpack-conf-react-scripts 使用教程

    随着现代 Web 应用程序的发展,前端开发已经成为应用程序开发的重要部分。 webpack-conf-react-scripts 这个 npm 包提供了一种快速构建基于 React 的应用程序的方式,...

    3 年前
  • npm 包 mini-toastr-o8 使用教程

    前言 在前端开发过程中,用户体验是我们要考虑的重点。其中之一就是提示信息的体验,mini-toastr-o8 是一个轻量的 npm 包,可以快速的给我们的用户反馈信息,并且用户体验效果更佳。

    3 年前
  • npm 包 sr-less-base-new 使用教程

    前言 在前端开发中,我们经常需要使用 CSS 预处理器进行样式的编写。而在众多的 CSS 预处理器中,Less 是非常流行的其中一种。在 Less 的基础上,我们可以使用 sr-less-base-n...

    3 年前
  • NPM 包 zxomegaxan_js_footer 使用教程

    前言 在前端开发过程中,我们常常需要添加页面底部区域的版权信息或其他的一些信息,如何使用合适的方式添加这些内容呢? Zxomegaxan 开发的 npm 包 zxomegaxan_js_footer ...

    3 年前
  • npm 包 @mpurusottamc/url2png 使用教程

    什么是 npm 包 @mpurusottamc/url2png? npm 包 @mpurusottamc/url2png 是一种基于 Node.js 和 PhantomJS 技术的工具,它可以将任何 ...

    3 年前
  • npm 包 nimkernels2 使用教程

    介绍 nimkernels2 是一个基于 WebAssembly 技术的高性能数学计算库,具有快速、准确、稳定等特点。它提供了多种快速数学计算函数,包括向量、矩阵、四元数、插值等,可以满足各种数学计算...

    3 年前
  • npm 包 lkconverter 使用教程

    前言 lkconverter 是一个基于 node.js 的 npm 包,它可以将位于两个地球坐标系下的经纬度信息进行转换。在前端开发中,有时需要将经纬度信息从 WGS84 坐标系转换为 GCJ02 ...

    3 年前
  • npm 包 zs-toolkit 使用教程

    简介 zs-toolkit 是一个集成了多个常用工具函数的 npm 包,旨在为前端开发人员提供便捷的函数库,从而提高开发效率。 安装 在命令行中输入以下命令安装 zs-toolkit: --- ---...

    3 年前
  • npm 包 @abskmj/cligen 使用教程

    前言 在前端开发中,我们经常需要在命令行运行一些任务来加速我们的工作流程。然而,命令行的使用对于一些前端开发工程师来说并不是非常方便。 npm 包 @abskmj/cligen 就是为了解决这个问题而...

    3 年前
  • npm 包 kelp-next 使用教程

    随着前端技术的不断发展,现在开发者们需要掌握更多的技能来帮助他们完成更多的功能。其中,npm 包 kelp-next 是一个非常强大的工具,能够帮助前端开发者更加高效地进行开发。

    3 年前
  • npm 包 node-red-contrib-emax-servo 使用教程

    前言 在前端开发中,我们经常需要使用各种 npm 包来辅助我们的开发。本篇文章将带你详细介绍一个 npm 包 —— node-red-contrib-emax-servo,以及如何使用它来控制电机舵机...

    3 年前

相关推荐

    暂无文章