import { useState } from "react";
import "./styles.css";
const maxChecked = 2;
export default function App() {
const [checkCount, setCheckCount] = useState(0);
const checkOnlyOne = (checkThis) => {
const checkboxes = document.getElementsByName("test1");
checkboxes.forEach((checkbox, index) => {
if (checkbox !== checkThis) {
checkbox.checked = false;
}
console.log(index, checkbox.checked);
});
};
const checkOnlyTwo = (checkThis) => {
if (checkThis.checked) {
setCheckCount((prev) => prev + 1);
} else {
setCheckCount((prev) => prev - 1);
return;
}
if (checkCount >= maxChecked) {
checkThis.checked = false;
setCheckCount((prev) => prev - 1);
}
};
return (
<>
<label>
<input
type="checkbox"
name="test1"
onClick={(e) => checkOnlyOne(e.target)}
/>{" "}
1
<br />
</label>
<label>
<input
type="checkbox"
name="test1"
onClick={(e) => checkOnlyOne(e.target)}
/>{" "}
2
<br />
</label>
<label>
<input
type="checkbox"
name="test1"
onClick={(e) => checkOnlyOne(e.target)}
/>{" "}
3
<br />
</label>
<br />
<br />
<label>
<input
type="checkbox"
name="test2"
onClick={(e) => checkOnlyTwo(e.target)}
/>{" "}
1
<br />
</label>
<label>
<input
type="checkbox"
name="test2"
onClick={(e) => checkOnlyTwo(e.target)}
/>{" "}
2
<br />
</label>
<label>
<input
type="checkbox"
name="test2"
onClick={(e) => checkOnlyTwo(e.target)}
/>{" "}
3
<br />
</label>
</>
);
}