我制作了一個注冊頁面,并希望它在提交之前進行一些驗證。所以,我放入event.preventDefault了我的handleSubmit 函數。event.preventDefault是為了防止默認功能,所以如果表單為空,則不會提交。但是,在我填滿所有空白后,它就可以提交。我的問題還是event.preventDefault在handleSubmit函數填空后,為什么可以提交表單?或者,如果用戶填寫所有空白,該功能event.preventDefault將被禁用?謝謝!export default function RegisterPage() { const [values, setValues] = useState({ userName: "", nickName: "", password: "", }); const [errors, setErrors] = useState({}); const [apiResError, setApiResError] = useState(""); const handleSubmit = (e) => { setApiResError(""); e.preventDefault(); registerAccount(values.userName, values.nickName, values.password).then( (res) => { console.log(res); } ); }; const handleChange = (e) => { const { name, value } = e.target; setValues({ ...values, [name]: value, }); }; const handleFocus = (e) => { const { name } = e.target; setErrors({ ...errors, [name]: "" }); }; return ( <RegisterPageContainer> <RegisterPageTitle>Register</RegisterPageTitle> {apiResError && <div>{apiResError}</div>} <RegisterForm onSubmit={handleSubmit}> <InputWrapper> <UserNameInput name="userName" type="text" placeholder="Username" onChange={handleChange} value={values.userName} onFocus={handleFocus} /> </InputWrapper> {errors.userName && <div>{errors.userName}</div>} <InputWrapper> <NickNameInput name="nickName" type="text" placeholder="Nickname" onChange={handleChange} value={values.nickName} onFocus={handleFocus} /> );}
在 event.preventDefault 之后提交表單
弒天下
2023-10-20 16:49:19