npm 包 validated-form 使用教程

在前端开发的过程中,表单验证是一个非常重要的功能。在很多场景中,我们需要对用户输入的数据进行合法性检查。npm 上有许多优秀的表单验证工具,其中,validated-form 是一款非常受欢迎的工具。

validated-form 是一个基于 React 的表单验证组件库,它提供了一系列的表单验证规则及自定义验证方法,能够满足我们大多数表单验证需求。

本文将介绍 validated-form 的使用方法,包括安装、基本使用及高级用法。

安装

使用 validated-form 前,需要先安装 React。在安装 React 后,可以使用 npm 安装 validated-form。

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

基本使用

使用 validated-form 的基本流程如下:

  1. 定义表单项;
  2. 定义验证规则;
  3. 渲染 validated-form 组件,并指定表单项和验证规则;
  4. 监听 validated-form 组件的 onSubmit 事件,并处理表单提交。

以下是一个简单的示例代码,演示了如何使用 validated-form 进行表单验证。

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

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

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

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

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

上述示例代码中,RegisterForm 组件定义了一个包含 3 个表单项的表单。在注册按钮被点击时,会触发 handleSubmit 函数,如果表单验证通过,则会输出表单数据。

在 handleSubmit 函数中,调用了 validated-form 组件的 validate() 方法进行表单验证,如果验证通过,则返回 true。如果验证不通过,则 validated-form 组件会自动显示相应的错误信息。

验证规则

validated-form 提供了许多常用的验证规则,如 required(必填)、email(Email 格式)、url(URL 格式)、minLength(最小长度)、maxLength(最大长度)、alphaNum(字母或数字)等。在定义表单项时,可以指定相应的验证规则。

由于 validated-form 的验证规则是基于 validatorjs 库实现的,因此,validated-form 支持所有 validatorjs 支持的验证规则。例如,如果需要用正则表达式对表单项进行验证,可以使用“regex”规则。

以下是 validated-form 支持的常用验证规则:

规则 说明
required 必填
email Email 格式
url URL 格式
alpha 字母
alphaNum 字母或数字
numeric 数字
integer 整数
float 浮点数
minLength:n 最小长度为 n
maxLength:n 最大长度为 n
same 与指定字段相同
different 与指定字段不相同
in 在指定列表中
notIn 不在指定列表中
regex 满足指定正则表达式
date 日期格式(YYYY-MM-DD)
dateBefore 在指定日期之前
dateAfter 在指定日期之后

在定义验证规则时,可以指定错误信息。例如:

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

如果验证不通过,则 validated-form 会使用 errorMessage 中的文本作为错误提示信息。

自定义验证规则

validated-form 还允许我们自定义验证规则。在定义验证规则时,可以指定一个回调函数作为验证规则。例如:

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

在上述示例代码中,自定义了一个验证规则,判断用户名中是否包含 "admin"。如果包含,则验证不通过,否则验证通过。

表单项的引用

在 validated-form 中,我们需要使用表单项的名字来指定对应的表单验证规则。表单项的名字可以是任意字符串,但不建议使用具有特殊含义的字符串,如“submit”、“reset”等。

validated-form 使用 refs 引用子组件,可以使用 ref 获取 validated-form 组件的引用。在 validated-form 中,每个表单项都有一个 uniqueKey 属性,该属性用于在 validated-form 组件中引用对应的表单项。

在 handleChange 回调函数中,我们需要根据表单项名字更新表单数据。在 validated-form 中,可以使用 uniqueKey 属性来标识表单项,并在 handleChange 回调函数中更新表单数据。

示例代码:

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

高级用法

validated-form 还提供了许多高级功能,例如自定义验证规则、动态添加/删除表单项、异步验证、验证消息本地化等。详情可以参考 validated-form 的官方文档

总结

validated-form 是一款优秀的表单验证组件库,它提供了丰富的表单验证规则及自定义验证方法,并支持动态添加/删除表单项、异步验证等高级功能,可大大简化表单验证的开发工作。

希望这篇文章能够帮助读者了解 validated-form 的使用方法,使得在开发表单验证时更加方便快捷。

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


猜你喜欢

  • npm 包 generate-cname 使用教程

    前言 在进行前端开发的过程中,我们经常需要在我们的项目中绑定自定义的域名,但是在绑定域名的过程中可能会遇到一些重复性的繁琐的工作,这是我们就需要解决这个问题。这时候,我们就可以使用一个叫做 gener...

    2 年前
  • npm 包 **evansofts-memdb** 使用教程

    什么是 evansofts-memdb evansofts-memdb 是一个轻量级的内存型数据库,它通过 JSON 格式存储数据,提供了简单易用的增删改查功能,并支持将数据持久化到本地存储或浏览器缓...

    2 年前
  • npm 包 phuzzy-geo 使用教程

    简介 phuzzy-geo 是一个 npm 包,提供了一系列模糊地理位置坐标转换的方法。使用该包可以实现多种坐标系之间的互相转换,如 GPS 坐标与百度坐标之间的转换,以及根据经纬度计算两点之间距离等...

    2 年前
  • npm 包 silvermine-event-emitter 使用教程

    介绍 silvermine-event-emitter 是一个使用方便的 npm 包,可以帮助你在你的 JavaScript 代码中实现事件的订阅和发布。在前端开发中,事件是一个非常常用的概念,例如当...

    2 年前
  • npm 包 cordova-plugin-sentry 使用教程

    在前端开发中,我们经常会遇到需要对用户进行错误监控和定位的情况。这时,我们可以使用 Sentry 进行异常捕捉和分析。Sentry 支持多种语言和框架,并提供了相应的 SDK,如 cordova-pl...

    2 年前
  • npm 包 angular-library-sanjay 使用教程

    什么是 angular-library-sanjay angular-library-sanjay 是一个 Angular 库,它是由 Sanjay Kumar 创建的。

    2 年前
  • npm 包 RapidoJS 使用教程

    简介 RapidoJS 是一个轻量级的前端框架,提供了一系列工具和库,帮助开发者快速搭建 Web 应用。此外,RapidoJS 还提供了很多构建工具,让前端开发变得更有效率。

    2 年前
  • npm 包 ci.dashboard-entities 使用教程

    在前端开发中,我们经常需要管理我们的代码仓库,并监控仓库内的变化和状态。ci.dashboard-entities 就是一个可以帮助我们实现仓库监控的工具。本文将介绍如何通过 npm 包 ci.das...

    2 年前
  • npm 包 ci.dashboard-repositories 使用教程

    在现代前端开发中,CI(持续集成)是必不可少的一个环节,它可以帮助我们自动构建,测试和部署我们的应用程序。尤其是当你的项目变得越来越大时,手动进行这些工作将会变得越来越困难。

    2 年前
  • npm 包 xcavate 使用教程

    在前端开发中,我们经常需要从一个对象或数组中提取出特定的属性或元素,这个过程通常被称为“扫描”。如果你使用 JavaScript,那么你可能已经写过几个函数来实现这个功能。

    2 年前
  • npm 包 receiver-server 使用教程

    什么是 receiver-server? receiver-server 是一个基于 Node.js 的包,它可以帮助前端开发者构建一个 HTTP server。这个 server 可以监听服务器端的...

    2 年前
  • npm 包 nextblog 使用教程

    nextblog 是一款基于 React 和 Next.js 开发的轻量级博客应用,采用 markdown 格式来书写文章,使得编写与部署变得更加简单。本文将介绍如何使用该 npm 包来创建一个博客应...

    2 年前
  • npm 包 jambo-util-imgload 使用教程

    在前端开发中,优化页面中的图片加载是非常重要的一项任务。如果页面中存在大量的图片,那么就需要考虑如何优化图片加载的速度,同时确保图片质量不会受到影响。这时候,我们可以使用 npm 包 jambo-ut...

    2 年前
  • npm 包 js-perf 使用教程

    在前端开发中,性能是一个重要的考量因素。而 js-perf 是一个可以测试 JavaScript 代码性能的工具库。本篇文章将向大家介绍如何使用 npm 包 js-perf 进行性能测试,并分析测试结...

    2 年前
  • npm 包 jstree-bootstrap-theme 使用教程

    在 web 开发中,树形菜单是一个常见的组件。jstree 是一个非常流行的 jQuery 树形组件,同时也有很多 jstree 的主题,其中 jstree-bootstrap-theme 用 Boo...

    2 年前
  • npm包 url-analyzer的使用教程

    在前端开发中,我们通常需要对URL进行分析和处理,以便实现相关功能。npm包url-analyzer是一个用于对URL进行解析和分析的工具,其使用方便且功能强大。 本篇文章将为大家全面介绍npm包ur...

    2 年前
  • npm 包 metalsmith-gh-comments 使用教程

    在现代 web 开发中,为了提高博客或者网站的互动性,通常都会开启评论区。而评论系统同时也有管理和维护的成本。为了降低成本,我们可以使用 Github Issues 作为评论系统。

    2 年前
  • npm包angular2-library-example-fork使用教程

    angular2-library-example-fork是一个基于Angular 2的库,这个库提供了Angular 2模块的模板。这篇文章将提供一个详细的教程,如何使用这个npm包。

    2 年前
  • npm 包 rawl-number-formatter 使用教程

    Npm 是一个包管理工具,它允许您在您的应用程序中使用各种 JavaScript 库、插件和工具。其中一个非常有用的 npm 包是 rawl-number-formatter。

    2 年前
  • npm 包 number-formatter-example 使用教程

    在前端开发过程中,难免会遇到一些数值格式化的问题,如何快速、准确地对数值进行格式化是我们需要解决的难题。这时候,npm 包 number-formatter-example 就能派上用场了。

    2 年前

相关推荐

    暂无文章