【发布时间】:2019-05-08 10:02:06
【问题描述】:
我有一个用 vanilla-JS 编写的项目,它在应用程序的不同部分包含 10 个表单。所有表单/输入都通过validation.js 进行验证,它会检查它们的各种标准,如果有任何问题,则阻止提交。
现在我想在我的新反应应用程序中构建相同或相似的验证,它也将有大约 10 个表单:
我从 Login.js 开始,它有一个带有多个输入的表单,并使用 onSubmit 和组件的本地状态直接在组件中进行验证。虽然它工作正常,但我不想在另一个组件中再写 9 次这个验证。
另外,编写一个 Form.js 并在任何地方重复使用它不是一种选择,因为几乎所有表单看起来都非常不同并且用于不同的目的,它们唯一的共同点是:它们都需要在提交之前进行验证。
有人对我的问题提出建议吗?或者也许是一个链接,在哪里讨论了类似的问题?
【问题讨论】:
-
您可以对输入标签使用 required 属性,并在表单的 onSubmit 事件中调用 form.checkValidity() 方法。您需要任何自定义验证逻辑吗?
-
试试 Formik - 不要重新发明轮子
-
是的,有很多自定义验证:货币、不同的密码选项应该是可能的、带有日期的输入的最小/最大属性等。@MetehanSenol:React 中有没有办法创建类似自定义的东西checkValidity()?
标签: javascript reactjs forms validation