its a question that been asked a lot. if you search in internet you can find some good aproches but I count some of them here
1) make a trigger under legs of you character. define a Boolean onground variable ontriggerenter function it sets true and on ontriggerexit set it as false. so make character be able to jump only when grounded is true. you can set a layer or tag to make it only detect ground (I use this most of the times.)
2) use raycasting. raycast -transform.up with character length. when raycast is more than character length so it cant jump
3) if you use animation for jumping instead of physics like addforce you can set onground false when jump button pressed. on end of animation set it true.
For more details: