【发布时间】:2018-11-11 16:14:19
【问题描述】:
我在 React 中有一个函数用于检查提交时表单的验证状态。
表单包含 2 种类型的输入。
Text 和 Number
但是,我可以对字段中数字的长度进行一些控制,number 输入属性设置为text,并应用了maxLength 属性。
我现在需要做的是验证提交表单时,这些输入中的值确实是数字。
我的状态是:
state = {
firstName: '',
lastName: '',
accountNumber: '',
sortCode1: '',
sortCode2: '',
sortCode3: ''
}
我正在尝试使用以下内容进行检查....
checkValid = state => {
const rgx = new RegExp(/^[0-9]{0,9}$/)
const result = Object.keys(state).every(key => {
if (key.match(/(firstName|lastName|)/)) {
return !!state[key]
}
return rgx.test(state[key])
})
return result
}
我想要实现的是检查 firstName 和 lastName 是否有值,然后检查所有其他道具以确保它们只是数字和数字。
我似乎无法完成这项工作,因为表单要么总是返回 true,要么总是返回 false,具体取决于我修改代码的方式。
只要任何字段无效,我想简单地返回 false。
【问题讨论】:
标签: reactjs validation