Need help validating the email input even though I am using the type="email" it isn't working
Answered
Polish posted this in #help-forum
PolishOP
const onSubmit: SubmitHandler<FieldValues> = (data) => {
setIsLoading(true);
axios
.post("/api/register", data)
.then(() => {
toast.success("Success");
registerModal.onClose();
loginModal.onOpen();
})
.catch((err) => {
toast.error("Something went wrong! :(");
})
.finally(() => {
setIsLoading(false);
});
};
const toogle = useCallback(() => {
loginModal.onOpen();
registerModal.onClose();
}, [loginModal, registerModal]);
const bodyContent = (
<div className="flex flex-col gap-4">
<Heading title="Welcome to Havvn" subtitle="Create an account!" />
<Input
id="email"
type="email"
label="Email"
disabled={isLoading}
register={register}
errors={errors}
required
/>
<Input
id="name"
label="Name"
disabled={isLoading}
register={register}
errors={errors}
required
/>
<Input
id="password"
type="password"
label="Password"
disabled={isLoading}
register={register}
errors={errors}
required
/>
</div>
);
return (
<Modal
disabled={isLoading}
isOpen={registerModal.isOpen}
title="Register"
actionLabel="Continue"
onClose={registerModal.onClose}
onSubmit={handleSubmit(onSubmit)}
body={bodyContent}
footer={footerContent}
/>
);
};
export default RegisterModal;6 Replies
@Polish ts
const onSubmit: SubmitHandler<FieldValues> = (data) => {
setIsLoading(true);
axios
.post("/api/register", data)
.then(() => {
toast.success("Success");
registerModal.onClose();
loginModal.onOpen();
})
.catch((err) => {
toast.error("Something went wrong! :(");
})
.finally(() => {
setIsLoading(false);
});
};
const toogle = useCallback(() => {
loginModal.onOpen();
registerModal.onClose();
}, [loginModal, registerModal]);
const bodyContent = (
<div className="flex flex-col gap-4">
<Heading title="Welcome to Havvn" subtitle="Create an account!" />
<Input
id="email"
type="email"
label="Email"
disabled={isLoading}
register={register}
errors={errors}
required
/>
<Input
id="name"
label="Name"
disabled={isLoading}
register={register}
errors={errors}
required
/>
<Input
id="password"
type="password"
label="Password"
disabled={isLoading}
register={register}
errors={errors}
required
/>
</div>
);
return (
<Modal
disabled={isLoading}
isOpen={registerModal.isOpen}
title="Register"
actionLabel="Continue"
onClose={registerModal.onClose}
onSubmit={handleSubmit(onSubmit)}
body={bodyContent}
footer={footerContent}
/>
);
};
export default RegisterModal;
it seems like your inputs are not inside a html form tag. Only if your input fields are inside a form tag, you can use the browser form validation
So put it inside a html form tag and you are good to go 👍
Answer
@Polish hello?
PolishOP
Thank you, btw i used a different approach I’m validating the email while its been pushed in the DB using prisma
@Polish Thank you, btw i used a different approach I’m validating the email while its been pushed in the DB using prisma
happy to help. Please mark solution