首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用reactJS和typescript在fabric UI中验证提交表单上的多个文本字段?

在fabric UI中使用ReactJS和TypeScript验证提交表单上的多个文本字段,可以按照以下步骤进行:

  1. 首先,确保已经安装了ReactJS和TypeScript的开发环境,并且已经导入了fabric UI的相关组件和样式。
  2. 创建一个React组件,用于表示表单。在组件的state中定义多个文本字段的值和验证状态。
  3. 在render方法中,使用fabric UI的TextField组件来渲染每个文本字段。将每个文本字段的值和验证状态与state中对应的属性绑定。
  4. 在每个文本字段的onChange事件处理程序中,更新state中对应的属性的值。
  5. 在表单的提交事件处理程序中,对每个文本字段的值进行验证。可以使用正则表达式、条件判断等方式进行验证。如果验证失败,可以设置state中对应的验证状态为false,并显示相应的错误提示。
  6. 在render方法中,根据每个文本字段的验证状态,显示相应的错误提示信息。

以下是一个示例代码:

代码语言:txt
复制
import * as React from 'react';
import { TextField, PrimaryButton } from 'office-ui-fabric-react';

interface IFormState {
  field1: string;
  field2: string;
  field1Valid: boolean;
  field2Valid: boolean;
}

export class MyForm extends React.Component<{}, IFormState> {
  constructor(props: {}) {
    super(props);
    this.state = {
      field1: '',
      field2: '',
      field1Valid: true,
      field2Valid: true,
    };
  }

  handleField1Change = (event: React.FormEvent<HTMLInputElement | HTMLTextAreaElement>, newValue?: string) => {
    this.setState({
      field1: newValue || '',
      field1Valid: true,
    });
  };

  handleField2Change = (event: React.FormEvent<HTMLInputElement | HTMLTextAreaElement>, newValue?: string) => {
    this.setState({
      field2: newValue || '',
      field2Valid: true,
    });
  };

  handleSubmit = (event: React.FormEvent<HTMLFormElement>) => {
    event.preventDefault();

    // 验证字段1
    if (this.state.field1.trim() === '') {
      this.setState({ field1Valid: false });
    }

    // 验证字段2
    if (this.state.field2.trim() === '') {
      this.setState({ field2Valid: false });
    }

    // 如果所有字段都通过验证,则提交表单
    if (this.state.field1Valid && this.state.field2Valid) {
      // 提交表单的逻辑
    }
  };

  render() {
    return (
      <form onSubmit={this.handleSubmit}>
        <TextField
          label="字段1"
          value={this.state.field1}
          onChange={this.handleField1Change}
          errorMessage={!this.state.field1Valid ? '字段1不能为空' : undefined}
        />
        <TextField
          label="字段2"
          value={this.state.field2}
          onChange={this.handleField2Change}
          errorMessage={!this.state.field2Valid ? '字段2不能为空' : undefined}
        />
        <PrimaryButton type="submit">提交</PrimaryButton>
      </form>
    );
  }
}

在这个示例中,我们创建了一个包含两个文本字段的表单。在提交表单时,会对每个字段进行非空验证,并显示相应的错误提示信息。如果所有字段都通过验证,则可以执行提交表单的逻辑。

请注意,这只是一个简单的示例,实际应用中可能需要更复杂的验证逻辑和错误处理。另外,这个示例中使用的是office-ui-fabric-react库中的TextField和PrimaryButton组件,你可以根据实际需求选择其他适合的组件。

关于ReactJS和TypeScript的更多信息,你可以参考以下链接:

  • ReactJS官方文档:https://reactjs.org/
  • TypeScript官方文档:https://www.typescriptlang.org/

希望这个回答对你有帮助!

相关搜索:如何使输入字段中的文本在提交后显示在屏幕上?如何使用jquery在表单提交中添加对字段值的编辑使用react和material ui在文本字段中更改required的标签MS-Office React-Fabric UI -如何在提交表单时在日期选择器上显示所需的错误消息?如何在没有字段接触的情况下提交Formik表单时在TextField上显示验证错误如何使用fabric.js画布库在画布上创建的矩形中写入文本如何使用cypress test在文本字段中输入生成的验证码文本?当验证器仍然不能正确地使用flutter时,如何停止提交给mysql的文本表单字段?在使用React和Semantic-UI-React的迭代中,在Edit select上仅显示一个表单字段?如何使用React中的material-UI在onFocus事件上选择文本字段中的部分文本?如何使用material ui在reactjs / css中创建包含多个部分的tableHead单元格的表格如何使用laravel中的javascript在日期上应用必需的字段验证器?如何使用google recaptcha v2在html和node.js应用程序中验证表单提交如何在提交表单时在ajax中验证输入的用户名和密码是否为空如何使用node js中的jimp在多个图像上打印不同的文本?如何使用Gatsby和Contentful的富文本字段在嵌入块中获取引用字段如何使用Codeigniter中的不同按钮在单个表单中上传多个图像和文本文件?Rails:如何使用jquery创建一个在erb表单中添加文本字段的Add more按钮如何在不重定向和不使用iframe的情况下提交表单?(在移动设备上似乎不起作用)如何只在用户点击提交表单时触发数据验证,而不是在ASP.NET MVC中文本框中的值改变后触发数据验证?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

几款ReactJS最优秀的UI框架

上篇文章中写了流行的前端UI几大框架,发现大部分评价都是Vue的UI组件库,从评论中得知漏掉了很多,也有人问React ui,自己就搜索总结下适应于ReactJS的UI组件库。...在支付宝、蚂蚁金服等多个阿里项目中投入使用。组件化质量非常高,开箱即用。...Semantic UI 是一款非常优秀的前端开发框架。它在用户体验的设计上与Bootstrap和Foundation相比,更胜一筹。集成了很多很漂亮的UI模块,能够使网页制作更加高效和美观。...它的组件使用TypeScript编写,并以Sass编写样式风格,以实现快速且灵活的开发流程。...Fabric是一款用于构建类似Office和Office 365风格的React组件库。是官方用TypeScript编写的Office库之一。

16.3K50

「首席架构师推荐」React生态系统大集合

- 用于开发表单编写较少代码的UI库 formsy-react - React JS的表单输入构建器和验证器 Learn Raw React: Ridiculously Simple Forms Winterfell...- 在React中生成复杂,经过验证和扩展的基于JSON的表单 Redux-Autoform - 从元数据中动态创建Redux-Forms uniforms - 一堆React组件和帮助器,可以轻松生成和验证表单...formik - React中的表单,没有眼泪 NeoForm - 用于表单状态管理和验证的模块化HOC react-jsonschema-form - 用于从JSON Schema构建Web表单的React...React - React形式 - React中的角状React形式 unform - ReactJS表单库,用于创建不受控制的表单结构,包含嵌套字段,验证等等!...- 一个简单的redux中间件,用于使用JSON Schema验证redux状态值和对象类型 redux-persist - 坚持并补充redux商店 Redux教程 在ES6中使用React和Redux

12.4K30
  • 40道ReactJS 面试问题及答案

    防止默认行为: 在 HTML 中,为了防止事件的默认行为(例如,防止表单提交),您可以使用 event.preventDefault() 等方法。...当组件管理的表单字段中的元素状态发生变化时,我们使用 onChange 属性来跟踪它。...如何在 React 中对 props 应用验证? 在 React 中,您可以使用 PropTypes 或 TypeScript 对 props 应用验证。...输入验证:清理和验证用户输入,以防止跨站点脚本 (XSS) 和 SQL 注入攻击等常见安全漏洞。使用验证器等库进行输入验证,并在用户输入呈现在 UI 中或在服务器上处理它们之前对其进行清理。...之后,我们使用 fireEvent.change 模拟输入字段中的更改,并使用 fireEvent.click 模拟提交按钮上的单击事件。

    51410

    【摸鱼神器】UI库秒变低代码工具——表单篇(一)设计

    json 文件) /** * 表单控件的属性 */ export interface IFromProps { /** * 表单的 model,对象,包含多个字段。...: ILinkageMeta } moduleId 模块编号,以后使用 formId 表单编号,一个模块可以有多个表单 colOrder 数组形式,表单里包含哪些字段?...字段的先后顺序如何确定?就用这个数组。 columnsNumber 表单控件的列数,表单只能单列?太单调,支持多列才是王道。..., default: size.small } } 在组件里的使用方式 那么如何使用呢?...分栏 这里分为多个表单控件,以便于实现多种分栏方式,并不是在一个组件内部通过 v-if 来做各种判断,这也是我需要把 interface 写在单独文件里的原因。

    2.4K10

    ​年终盘点: 复盘20+基于React的开源管理后台&插件

    最全vue3开源管理系统汇总 近年来,React 框架的崛起为前端开发带来了新的可能性,其在构建用户界面方面的灵活性和高效性,使其在开源管理系统的开发中得到了广泛应用。...上一篇文章和大家分享了国内外 star 比较多的 vue3 开源管理系统, 也是我之前做项目会考虑的方案, 本篇文章继续为大家推荐几款基于 React 的开源管理系统,让我们一起探索这些工具如何利用...7.React Hook Form React Hook Form是一个高性能、灵活、易拓展、易于使用的表单校验库,用于React Web&Native的表单验证。...它的核心是QueryClient,它是一个全局状态管理器,可以帮助我们从多个组件中访问和共享数据查询结果。 该项目是为网络开发人员提供的高质量开源软件。...它具有多个 HTML 元素,并带有 ReactJS、Vue 和 Angular 的动态组件。 项目功能: 1.CSS 组件:Notus React 带有大量完全编码的 CSS 组件。

    1.7K10

    关于angular和react

    官方介绍的三大特性如下: just the ui 把react只当作一个ui组件就好,等同于传统mvc中的view。...网上的资料也非常多,这里就不做过多介绍。 reactjs和angularjs reactjs是非常纯粹的组件式开发,所有的页面元素均由各大小组件组合而成。...简单好用的module和依赖注入系统,controller中定义的数据和事件,service实现不同组件之间共享数据,filter处理筛选数据,forms支持表单和复杂的表单验证,简单的动画模块animations...,强大的directive实现指令和指令的嵌套,可以很轻松的实现reactjs的组件及组件组合功能。...上手难易程度来说,angularjs确实比react难很多,但这和一个工具是否好用没有关系,例如正则。 网上看到大家都在鼓吹react如何如何,又有很多人抛弃了angular投向react的怀抱。

    2.2K60

    关于angular和react

    官方介绍的三大特性如下: just the ui 把react只当作一个ui组件就好,等同于传统mvc中的view。...网上的资料也非常多,这里就不做过多介绍。 reactjs和angularjs ---- reactjs是非常纯粹的组件式开发,所有的页面元素均由各大小组件组合而成。...简单好用的module和依赖注入系统,controller中定义的数据和事件,service实现不同组件之间共享数据,filter处理筛选数据,forms支持表单和复杂的表单验证,简单的动画模块animations...,强大的directive实现指令和指令的嵌套,可以很轻松的实现reactjs的组件及组件组合功能。...上手难易程度来说,angularjs确实比react难很多,但这和一个工具是否好用没有关系,例如正则。 网上看到大家都在鼓吹react如何如何,又有很多人抛弃了angular投向react的怀抱。

    1.5K10

    Shinyforms | 用 Shiny 写一个信息收集表

    当前功能 •表单结果保存到本地文件;•支持必填字段和可选字段(在问题列表中使用 mandatory 参数);•仅用一行代码即可为 Shiny UI 和 server 添加表单;•可以在同一 App 中包含多种不同形式...;•以干净和用户友好的方法来捕获和报告错误;•问题和表格数据采用 R 列表格式;•支持的问题类型:文本,数字,复选框;•能够多次提交同一表单(在表单信息列表中使用 multiple = FALSE 参数以禁止多次提交...如果你想查看所有收集结果,则必须输入密码以验证您是管理员 (在表单信息列表中使用 password 参数可设置密码);•支持更复杂的输入验证,当字段不满足某些条件时,会给出错误提示消息(在表单信息列表中使用...validations 参数);•可选加入“重置”按钮,用于重置表单中的字段(在表单信息列表中使用 reset = TRUE 参数);•问题可包含提示文本,显示在标题下方(在问题列表中使用 hint...再举一个例子 此示例与上一个示例相似,但进一步说明了其他的一些功能。它显示了如何在一个应用程序中插入两个表格,以及如何使用管理员查看功能。

    3.9K10

    快速构建和交付网站:无头 CMS 推荐

    避免微服务地狱 - 在一个地方获取所有内容(甚至身份验证)。...版本历史记录与草稿保存 字段级别国际化处理 块式布局生成器 SlateJS 富文本编辑器 Array 字段类型 强大灵活的访问控制 Payload 在每个操作上都提供了文档和字段级别的钩子函数 使用...Headless CMS:带有 GraphQL API 的 Headless CMS,在 UI 中构建 API 和内容模型。支持内容修订、本地化和细粒度权限控制。...Form Builder:使用拖放式编辑工具创建表单,并将其插入到使用 Page Builder 构建的网页上。支持 webhook 和 ReCaptcha 集成。...结构化数据管理:使用 Sanity Studio,您可以方便地管理和组织结构化数据。它提供了强大且易于使用的工具来定义模式、字段以及其之间的关系。 实时协作与版本控制:多人同时在相同文档上进行编辑?

    55320

    Sentry 开发者贡献指南 - 前端(ReactJS生态)

    组件与视图 app/components/ 和 app/views 文件夹都包含 React 组件。 使用通常不会在代码库的其他部分重用的 UI 视图。 使用设计为高度可重用的 UI 组件。...我们不是处理渲染组件的实例,而是以与用户相同的方式查询 DOM。我们通过 label 文本找到表单元素(就像用户一样),我们从他们的文本中找到链接和按钮(就像用户一样)。...name 通常是表单元素的 label 或 button 的文本内容,或 aria-label 属性的值。如果不确定,请使用 logRoles 功能 或查阅可用角色列表。...label 文本查找表单元素,因此在测试表单时首选此选项。...getByText - 在表单之外,文本内容是用户查找元素的主要方式。此方法可用于查找非交互式元素(如 div、span 和 paragraph)。

    6.9K30

    前端开发框架简介:angular 和 react

    官方介绍的三大特性如下: just the ui 把react只当作一个ui组件就好,等同于传统mvc中的view。...网上的资料也非常多,这里就不做过多介绍。 reactjs和angularjs reactjs是非常纯粹的组件式开发,所有的页面元素均由各大小组件组合而成。...简单好用的module和依赖注入系统,controller中定义的数据和事件,service实现不同组件之间共享数据,filter处理筛选数据,forms支持表单和复杂的表单验证,简单的动画模块animations...,强大的directive实现指令和指令的嵌套,可以很轻松的实现reactjs的组件及组件组合功能。...上手难易程度来说,angularjs确实比react难很多,但这和一个工具是否好用没有关系,例如正则。 网上看到大家都在鼓吹react如何如何,又有很多人抛弃了angular投向react的怀抱。

    5.5K10

    HTML 表单和约束验证的完整指南

    在本文中,我们将研究 HTML 表单字段和 HTML5 提供的验证选项。我们还将研究如何通过使用 CSS 和 JavaScript 来增强这些功能。 什么是约束验证? 每个表单域都有一个目的。...媒体捕捉输入法 checked 复选框/收音机被选中 disabled 禁用控件(它不会被验证或提交其值) form 与使用此 ID 的表单关联 formaction 提交和图像按钮上提交的 URL...pattern 正则表达式模式,例如[A-Z]+一个或多个大写字符 placeholder 字段值为空时的占位符文本 readonly 该字段不可编辑,但仍将被验证并提交 required 该字段是必需的...您也在创造不同的用户体验。也许你的控制比桌面、iOS 和 Android 上的标准日期选择器要好,但不熟悉的 UI 会让一些用户感到困惑。...你可以: 停止验证,直到用户与字段交互或提交表单 使用自定义样式显示错误消息 提供仅在 HTML 中无法实现的自定义验证。

    8.4K40

    EqualUI

    在开发现代Web应用时,一个简洁易用的UI组件库能够显著提升开发效率和用户体验。...Equal-UI是一款基于Vue 3和TypeScript开发的开源UI组件库。它专注于提供轻量级、性能优越且可高度自定义的组件,适用于各种现代Web应用场景。...无依赖:尽量减少对第三方库的依赖,确保轻量级和高性能。 TypeScript支持:提供完善的类型定义,提升开发体验和代码质量。 快速开始 Equal-UI的安装与使用非常简单。...以下是快速入门的步骤: 安装 使用npm或yarn安装Equal-UI: npm install equal-vue # 或者 yarn add equal-vue 引入 在Vue项目中引入Equal-UI...输入框(Input):包括文本框、密码框等。 复选框(Checkbox)和单选框(Radio):用于选择和表单交互。 模态框(Modal):支持弹出层的创建。 表单(Form):提供表单验证和布局。

    8010

    用Typescript 的方式封装Vue3的表单绑定,支持防抖等功能。

    Vue3 的父子组件传值、绑定表单数据、UI库的二次封装、防抖等,想来大家都很熟悉了,本篇介绍一种使用 Typescript 的方式进行统一的封装的方法。...在 set 里面使用 emit 进行提交,在 get 里面获取 props 里的属性值。...一个表单里面往往涉及多个字段,如果每个字段都使用 v-model 的方式传递的话,就会出现“中转”的情况,这里的“中转”指的是 emit,其内部代码比较复杂。...type="daterange" 的时候,v-model 是一个数组,而后端数据库的设置,一般是两个字段,比如 startDate、endDate,需要提交的也是对象形式,这样就需要在数组和对象之间做转换...emit 多字段(封装) 无需单独封装 需要单独封装 多字段(使用) 需要写多个v-model 不需要增加参数的数量 多字段(表单v-for) 不好处理 容易 如果表单里的子组件,想采用 v-for

    1.1K10

    从零打造组件库

    前言 组件库,一套标准化的组件集合,是前端工程师开发提效不可或缺的工具。 业内优秀的组件库比如 Antd Design 和 Element UI,大大节省了我们的开发时间。...中判断 isTsProject 的目录路径如图所示是基于 src 的,且无法修改,我们这里组件源码在 components 路径下,所以这里要手动添加相关 typescript 的配置。...为了同时打包 ​frog.js​ 和 ​frog.min.js​,在 ​_compileDistJS​ 中引入了 teser 插件,执行了两次 ​rollup​ 打包。...结尾 本文是我在搭建组件库过程中的学习总结,在过程中学习到了很多知识,并且搭建了清晰的知识体系,希望能够对你有所帮助,欢迎在评论区交流~ 参考文档 Tree-Shaking性能优化实践 - 原理篇 彻底搞懂...ESLint 和 Prettier 集成配置 @umijs/fabric TypeScript and React: Components TypeScript ESLint 由 allowSyntheticDefaultImports

    1.7K10

    Next.js高级表单处理:整合Server Actions、FormData、react-hook-form和zod

    FormData:Web API提供的接口,用于构造表单数据集合。react-hook-form:用于构建灵活和高效的表单的React库。zod:TypeScript优先的模式声明和验证库。...简化的状态管理使用FormData和Server Actions消除了需要为每个表单字段创建和管理状态的需求,减少了客户端JavaScript代码量,提高了性能。2....减少客户端-服务器往返使用Server Actions,表单提交可以直接在服务器上处理,无需额外的API调用,显著提高性能。5....更容易实现服务器端重定向在提交表单后执行重定向变得更加简单,可以直接在Server Action中完成。9....表单设置:使用react-hook-form的useForm hook设置表单,并使用zodResolver进行表单验证。提交处理:当表单提交时,react-hook-form首先进行客户端验证。

    57710

    Web表单开发之实时格式化显示——Cleave.js

    介绍 Cleave.js是一个帮助表单实现各种复杂实时格式化显示的工具库,可以说Cleave.js让表单的输入变得更加的高逼格,能实现很多复杂的表单格式化显示,简而言之就是针对标签按照诸如千分位.../ AMD模块化 ReactJS组件 AngularJS指令(1.x) ES模块化 为什么使用Cleave.js?...Cleave.js是通过格式化键入的数据来提供一种提高输入字段可读性的简便方法。通过使用该库,无需编写任何令人难以置信的正则表达式或掩码模式即可格式化输入文本。...但是,这并不意味着要替换任何验证或掩码库,仍然需要对数据进行服务器端的校验。也就是说Cleave.js是为了更加好的可读性 实践 信用卡 ?...true}} onChange={this.onChange.bind(this)} /> ); } } 总结 Cleave.js是一个非常值得使用的表单工具库

    2.2K20

    Web 框架的替代方案

    在 ReactJS 和 SolidJS 中,我们会创建声明性代码,并将其转化为命令性代码,向 DOM 中加入标签或者删除标签。在 Svelte 中,生成这些代码。...传统上,用户填写表格并点击“提交”按钮,服务器端的代码就会处理响应。表单是数据绑定和互动性的多页面应用版本。难怪具有 input 和 output 基本名称的 HTML 元素是表单元素。...表单带有内置的输入验证特性:通过 regex 模式进行验证,对 CSS 中无效和有效表单进行反应性验证,处理必需表单和可选表单,等等。为了享受这些特性,你不需要看起来像表单的东西。...表单的 submit 事件是非常有用的。例如,它允许在没有提交按钮的情况下捕获“Enter”键,并允许通过 submitter 属性来区分多个提交按钮(正如我们将在后面的 TODO 示例中看到的)。...使用稳定的选择器有助于实现 UI 测试自动化。我们可以使用嵌套的 API 作为一种稳定的方式来钩住 DOM,而不管它的布局和层次结构如何。

    2.6K10
    领券