更改校验逻辑

This commit is contained in:
xmdhs 2023-09-22 18:09:05 +08:00
parent 51e86f469b
commit 1ec5f6497b
No known key found for this signature in database
GPG Key ID: E809D6D43DEFCC95
3 changed files with 24 additions and 14 deletions

View File

@ -15,9 +15,25 @@ type prop = {
export const CheckInput = forwardRef<refType, prop>(({ required, checkList, ...textFied }, ref) => { export const CheckInput = forwardRef<refType, prop>(({ required, checkList, ...textFied }, ref) => {
const [err, setErr] = useState(""); const [err, setErr] = useState("");
const [value, setValue] = useState("");
const check = (value: string) => {
if (required && (!value || value == "")) {
setErr("此项必填")
return false
}
for (const v of checkList) {
if (!v.reg.test(value)) {
setErr(v.errMsg)
return false
}
}
setErr("")
return true
}
const verify = () => { const verify = () => {
return err == "" return check(value)
} }
useImperativeHandle(ref, () => { useImperativeHandle(ref, () => {
@ -28,17 +44,8 @@ export const CheckInput = forwardRef<refType, prop>(({ required, checkList, ...t
const onChange = (event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => { const onChange = (event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {
const value = event.target.value const value = event.target.value
if (required && (!value || value == "")) { setValue(value)
setErr("此项必填") check(value)
return
}
for (const v of checkList) {
if (!v.reg.test(value)) {
setErr(v.errMsg)
return
}
}
setErr("")
} }
@ -48,6 +55,7 @@ export const CheckInput = forwardRef<refType, prop>(({ required, checkList, ...t
onChange={onChange} onChange={onChange}
helperText={err} helperText={err}
required={required} required={required}
value={value}
{...textFied} {...textFied}
/> />
}) })

View File

@ -37,7 +37,8 @@ export default function SignIn() {
email: data.get('email')?.toString(), email: data.get('email')?.toString(),
password: data.get('password')?.toString(), password: data.get('password')?.toString(),
} }
if (!Array.from(checkList.current.values()).every(v => v.verify())) { if (!Array.from(checkList.current.values()).map(v => v.verify()).reduce((p, v) => (p == true) && (v == true))) {
setLoading(false)
return return
} }
login(postData.email!, postData.password ?? ""). login(postData.email!, postData.password ?? "").

View File

@ -35,7 +35,8 @@ export default function SignUp() {
password: data.get('password')?.toString(), password: data.get('password')?.toString(),
username: data.get("username")?.toString() username: data.get("username")?.toString()
} }
if (!Array.from(checkList.current.values()).every(v => v.verify())) { if (!Array.from(checkList.current.values()).map(v => v.verify()).reduce((p, v) => (p == true) && (v == true))) {
setLoading(false)
return return
} }
register(d.email ?? "", d.username ?? "", d.password ?? ""). register(d.email ?? "", d.username ?? "", d.password ?? "").