reactjs - ReactJS - 前端表单错误处理程序/验证
问题描述
我正在用 ReactJS 构建一个简单的捐赠应用程序。这是一个工作版本: https ://stackblitz.com/edit/react-grzdgz
我从来没有做过表单错误验证。因此,如果有人没有填写某个字段,我希望弹出一条错误消息,上面写着“必须填写此字段”之类的内容。
我一直在尝试遵循本教程: https ://learnetto.com/blog/how-to-do-simple-form-validation-in-reactjs
但是我有点迷失了,关于如何将这些功能/错误消息传递到我的表单中,该表单位于一个单独的模块中。在演示中,所有内容都位于一个文件中。
但在我的应用程序中,我的表单与 index.js 分开。所以我在 index.js 中链接到它。
我快到了,我只需要一些帮助来连接一切。
任何人都可以帮助我进行表单错误验证吗?
错误处理功能都在这里: https ://stackblitz.com/edit/react-grzdgz
表单本身位于此处: https ://stackblitz.com/edit/react-grzdgz?file=components%2FForm.js
还有一些表单错误: https ://stackblitz.com/edit/react-grzdgz ?file=components%2FFormErrors.js
任何帮助都会很棒!谢谢!
解决方案
在提交时,我会有一个名为: 的方法validateFields
,它会像你想要的那样验证所有字段(而不是使用默认的 html 验证器,这在某些浏览器上不起作用)。在该方法中,我会保存所有有错误的字段。
如果错误列表(或对象)不为空,则使用 alert 或 popup react-popup
如果没有错误,您可以调用提交方法。
基本上,它看起来像:
export default class DumbComponent extends React.Component {
state = {} // all your field value
validateField = () => {
let error = []
//Validate all your field
if (error.length === 0) {
this.submit()
} else {
this.showError() // You decide the way
}
}
render() {
return (
<Form>
<FieldOne />
<Field2 />
<SubmitButton onSubmit={this.validateField} />
</Form>
)
}
}
希望它能回答你的问题!
推荐阅读
- google-cloud-ml - task.py:错误:无法识别的参数:使用 gcloud ai-platform 启动训练时 --job-dir
- c# - BindingSource 不会反映 DataGridView 中的更新数据
- sql - 我需要在两个单独的表格中找到两种产品的平均价格,其中制造商对于两者都是相同的
- botframework - 如何维护调度机器人和技能机器人之间的状态?
- c++ - 无法识别的模板声明错误 - 不明白我在做什么错
- android - 使用数据绑定的问题:val vs var 和使用 invalidateAll()
- javascript - 当我在这个数组上使用 forEach 时,如何从数组中删除一个项目?
- mobile - 我如何摆脱这个 itemBuilder 和 forEach 问题?
- elixir - 减少一张地图中的地图列表
- python - 如何使用 python 列出 Azure 虚拟机?