javascript - React 多步表单提交和验证

标签 javascript reactjs forms validation

所以我在母版页中有一个表单,它将呈现不同的文本框、单选框或日期选择器等。每次单击下一个按钮和后退按钮时,它将转到下一个组件或上一个组件组件,并保存整个表单。

假设数据模型看起来像这样 {字段:[{textbox1:texbox1value},{datepicker1:datepicker1value}]

给定一个或多或少像这样的伪代码。

ContainerPage.ts

<form>
   renderComponent(listOfComponent) // this will switch based on the link
   <button back>
   <button next>
</form>

组件1.ts

<input textbox>

Component2.ts

<input datepicker>

我能够保存它,但想知道如果按钮位于父组件上,如何验证输入?

我或多或少关注这个网站,但它没有验证 https://css-tricks.com/the-magic-of-react-based-multi-step-forms/

我还看到一些网站以这样的方式开发它,表单位于每个组件而不是母版页上。但最终使用了 1 个表格。

最佳答案

有一些方法可以解决这个问题。我最喜欢的方法是向表单组件添加一个回调函数,当表单的验证更改时将调用该回调函数。 因此,您永远不需要从组件外部检查表单的验证,并且在您需要该表单的任何地方都可以获得验证状态。

看那个例子 https://codesandbox.io/s/charming-glitter-10db0

这里我们有两个组件AppForm Form:在这里我们处理所有字段和验证 App:这里我们得到了验证状态的回调,我们可以打印错误消息或禁用按钮

关于javascript - React 多步表单提交和验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58003479/

相关文章:

javascript - 如何使用 jSTL 将值从 html 传递到 url,href ="edittheme?id=value1"

c# - 如何从 javascript 向 awesomium 发送消息?

javascript - 导航菜单列表(子菜单)下拉列表在 reactjs 中不起作用

javascript - Accordion 项目重复

javascript - 根据所选选项显示表单字段

javascript - 将模式表单中的数据注入(inject) AngularJS 中的父表单?

javascript - 如何从 CryptoJS AES 对象中创建一个字符串?

javascript - 从Python中的 session 存储中获取变量

javascript - react-transition-group v2 和 react-router-dom v4。为什么动画改变: inner and outer components?中的数据

javascript - 仅在启用 Javascript 时显示表单