I've created a react form and I cant call the function handleSubmit on submitting the form, everything looks fine to me but I'm sure there's a basic mistake that I'm making. Here's the code
import React from "react";
import {useState} from "react";
import Button from "./Button";
function Form(){
const [name, setName] = useState("");
const [email, setEmail] = useState("");
const [subject, setSubject] = useState("");
const [message, setMessage] = useState("");
function handleSubmit(event){
console.log("Worker");
if(name===""||email===""||subject===""||message===""){
event.preventDefault()
}else{
fetch("http://localhost:3000/formSubmit", {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: name,
email:email,
subject:subject,
message:message
})
})
}
}
return(
<div id="contact" className="fade-bottom ">
<div id="form">
<form id="form-internal" onSubmit={handleSubmit}>
<h3 id="form-head">Contact Me!</h3>
<input className="input-text" type="text" min={3} max={50} size={16} placeholder="Name" value={name} onChange={(e) => setName(e.target.value)} />
<input className="input-text" type="text" min={8} max={30} size={16} placeholder="Email" value={email} onChange={(e) => setEmail(e.target.value)} />
<input className="input-text" type="text" min={1} max={30} size={16} placeholder="Subject" value={subject} onChange={(e) => setSubject(e.target.value)} />
<textarea id="message" min={1} max={300} size={34} type="text" placeholder="Message" value={message} onChange={(e) => setMessage(e.target.value)} />
<input type="submit" id="submit-form" placeholder="Submit"/>
</form>
</div>
</div>
);
}
export default Form;
"Worker" isnt being printed.
I have tried using other similar approaches like making it
const handleSubmit = (event)=>{.....}
and used async and even without it, can't get it to work