Irregular jumping

Hi I’m trying to get my gameobject to jump by adding a force only when it touches the ground which works fine when I use Input.GetButtonDown but when I use Input.GetButton the jump is irregular (Randomly it seems), I thought maybe force was applying more than once if I keep the button pressed, but I if I put a bool to control that the same thing happens, any ideas?

Here is my code:

void Update () {

		if (Cubo!=null){
			if (suelo & Input.GetButton("Fire1")
& fuerza){ 



	void OnTriggerEnter (Collider other) {

	void OnTriggerExit (Collider other) {

Here is a short video demo of what happens

In the video I show first what happens with Input.GetButtonDown, then I change the code to Input.GetButton to show the difference and I click as fast as I can to make the same effect

Input.GetButton: Returns true while the virtual button identified by buttonName is held down.

Input.GetButtonDown: Returns true during the frame the user pressed down the virtual button identified by buttonName.