
ReactJS Add Remove Inputs Fields Dynamically
Install bootstrap
npm install react-bootstrap bootstrap@5.1.3
C:\reactdev\myreactdev>npm install react-bootstrap bootstrap@5.1.3
https://react-bootstrap.github.io/getting-started/introduction/
run
C:\reactdev\myreactdev>npm start src/index.js
//src/index.js import React from 'react'; import ReactDOM from 'react-dom'; import App from './App'; import 'bootstrap/dist/css/bootstrap.min.css' ReactDOM.render(public/index.html, document.getElementById('root') )
//public/index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>ReactJS </title>
</head>
<body>
<div id="root"></div>
</body>
</html>
src/App.js
//src/App.js
import React, { useState } from "react";
function Addmoreinput() {
const [inputList, setinputList]= useState([{firstName:'', lastName:''}]);
const handleinputchange=(e, index)=>{
const {name, value}= e.target;
const list= [...inputList];
list[index][name]= value;
setinputList(list);
}
const handleremove= index=>{
const list=[...inputList];
list.splice(index,1);
setinputList(list);
}
const handleaddclick=()=>{
setinputList([...inputList, { firstName:'', lastName:''}]);
}
return (
<div className="container">
<div className="row">
<div className="col-sm-12">
<h5 className="mt-3 mb-4 fw-bold">ReactJS Add Remove Inputs Fields Dynamically</h5>
{
inputList.map( (x,i)=>{
return(
<div className="row mb-3">
<div class="form-group col-md-4">
<label >First Name</label>
<input type="text" name="firstName" class="form-control" placeholder="Enter First Name" onChange={ e=>handleinputchange(e,i)} />
</div>
<div class="form-group col-md-4">
<label >Last Name</label>
<input type="text" name="lastName" class="form-control" placeholder="Enter Last Name" onChange={ e=>handleinputchange(e,i) }/>
</div>
<div class="form-group col-md-2 mt-4">
{
inputList.length!==1 &&
<button className="btn btn-danger mx-1" onClick={()=> handleremove(i)} style={{marginBottom: 10}}>Remove</button>
}
{ inputList.length-1===i &&
<button className="btn btn-success" onClick={ handleaddclick}>Add More</button>
}
</div>
</div>
);
} )}
</div>
</div>
</div>
);
}
export default Addmoreinput;