首页
学习
活动
专区
工具
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/

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

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

几款ReactJS最优秀UI框架

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

16.1K50

「首席架构师推荐」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使用ReactRedux

12.3K30

40道ReactJS 面试问题及答案

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

16510

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

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

2.3K10

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

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

3.8K10

​年终盘点: 复盘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 组件。

43610

关于angularreact

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

2.1K60

关于angularreact

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

1.5K10

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

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

39120

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

5.4K10

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

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

8.2K40

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.6K10

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.1K20

Web 框架替代方案

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

2.5K10

你不知道33个令人惊艳React开发库

今天文章,将介绍每个 React 开发人员都应该熟悉 33 个令人惊叹 React 库。而且是由其他开发人员经过良好测试维护令人惊叹 React 库。...formlink image.png Formik 是世界最流行 React React Native 开源表单库。...react-icons image.png 使用react-icons可以轻松地React项目中使用流行图标,它利用ES6导入,支持按需打包。...react-query image.png React 高性能且强大数据同步。 React React Native 应用程序获取、缓存更新数据,而无需触及任何“全局状态”。...storybook image.png Storybook 是一个用于独立构建 UI 组件页面的前端研讨会。成千上万团队使用它进行 UI 开发、测试和文档编制。它是开源且免费

25620
领券