react js form with post api
import axios from 'axios';
import React,{useEffect, useState} from 'react'
function Form() {
const initialvalue={username:'',userpwd:''};
const [state,setState]=useState(initialvalue)
const username=state.username;
const userpwd=state.userpwd;
const [formerror,setFormerror]=useState({});
const [submit,isSubmit]=useState(false);
const handlechange=(e)=>{
//console.log(e.target.name);
const {name,value}=e.target;
setState({...state,[name]:value})
}
const Validate=(state)=>{
const error={}
const regexpusername=/^[a-zA-Z]+$/;
const regexpassword=/^[a-zA-Z0-9]\w{7,10}$/;
if(state.username===''){
error.username="please fill your name";
//alert("please fill your username");
}
if(!regexpusername.test(state.username)){
error.username="please fill characters only";
}
if(state.userpwd===''){
error.pwd="please fill your password";
//alert("please fill your password");
}
if(!regexpassword.test(state.userpwd)){
error.pwd="please fill characters b/w 7-14";
}
//console.log(error);
setFormerror(error);//
//console.log("good morning"+formerror);
}
const handleSubmit=(e)=>{
e.preventDefault();
Validate(state);
isSubmit(true)
}
useEffect(()=>{
//console.log(formerror);
if(Object.keys(formerror).length===0&& isSubmit){
axios.post("http://localhost:4000/myapp",state).then(res=>{
console.log(state);
console.log(formerror);
}).catch(err=>console.log(err))
}
},[formerror])
return (
<div>
{username}{userpwd}
<form action="" onSubmit={handleSubmit}>
<div>
<label htmlFor="name">Name</label>
<input type="text" name="username"
value={username}
onChange={handlechange}
/>
<span>{formerror.username} </span>
</div>
<div>
<label htmlFor="password">Password</label>
<input type="password"
value={userpwd}
name="userpwd"
onChange={handlechange} />
<span>{formerror.pwd}</span>
</div>
<div>
<input type="submit" value="save" />
</div>
</form>
</div>
)
}
export default Form
Comments
Post a Comment