Javascript 在提交后如何重置表单
这是我第一次使用钩子,我不知道如何在提交后清除输入字段,form.reset不起作用Javascript 在提交后如何重置表单,javascript,reactjs,react-hooks,react-hook-form,Javascript,Reactjs,React Hooks,React Hook Form,这是我第一次使用钩子,我不知道如何在提交后清除输入字段,form.reset不起作用 import { useForm } from "react-hook-form"; import.... export default function AddUser() { const URL = "http://localhost:3000/AddUser"; const { register, handleSubmit, errors } = useF
import { useForm } from "react-hook-form";
import....
export default function AddUser() {
const URL = "http://localhost:3000/AddUser";
const { register, handleSubmit, errors } = useForm();
const onSubmit = (data) => {
if (data) {
axios.post(URL, data);
}
form.reset()
};
这是退货部分
return (
<form onSubmit={handleSubmit(onSubmit)} noValidate>
<div className="container">
<input type="text" name="name" placeholder="Name" ref={register({required: true})}/>
<input type="radio" name="gender" value="male" ref={register({ required: true })}/>:Male
<input type="radio" name="gender" value="female" ref={register({ required: true })}/:Female
<button type="submit" className="btn "> add</button>
</div>
</form>
);
}
提前谢谢
//////////
您需要设置一个默认状态,以在单击为句柄时设置,这样您的组件将在每次提交时重置。然而,如果你想阻止默认,你必须设置event.preventDefault;在onSubmit函数中
const onSubmit = (data) => {
if (data) {
axios.post(URL, data);
}
reset({})
};
您需要从useformhook导入reset,以便能够在标记之外使用它
所以
常量{register,handleSubmit,errors,reset}=useForm
然后在你的提交功能上
const onSubmit = (data) => {
if (data) {
axios.post(URL, data);
}
reset({})
};
按照这些思路应该可以工作。你能分享一下你在哪里调用form.reset{}吗?如果有错误,会显示什么?是的,我称之为onSubmit fun。。。我编辑了这个问题,非常感谢,这很有帮助,但是更好的方法是像mena happy说的那样从useForm导入重置