Need helping getting a character controller to jump

So far I have a character controller that enables me to move around, sprint and crouch (no animation) , but I am unable to get the controller to jump. I know 100% the character is getting the input to jump, and the movement vector is around ~40 on the Y axis, so the player should be moving. The problem is, nothing happens. The player can still move around, and fall of ledges, but nothing happens when I press space. Here is my code:

using UnityEngine;

public class KeyboardMovement : MonoBehaviour
{
    private CharacterController controller;
    public float walkSpeed;
    public float sprintSpeed;
    public float crouchSpeed;
    public float jumpHeight;
    Vector3 up = Vector3.zero;
    Vector3 movement = Vector3.zero;
    Vector3 forward = Vector3.zero;
    Vector3 sideways = Vector3.zero;
    void Start()
    {
        controller = GetComponent<CharacterController>();
    }


    void Update()
    {
        float speed = walkSpeed;
        //If crouching, set speed to crouch speed. This ovverides sprinting
        if (SingletonSettings.GetKey(SingletonSettings.Keybindings.crouch))
            speed = crouchSpeed;
        //Else if sprinting, set speed to sprint speed
        else if (SingletonSettings.GetKey(SingletonSettings.Keybindings.sprint))
            speed = sprintSpeed;

        //Create vectors for movement
        forward = transform.TransformDirection(Vector3.forward) * Input.GetAxis("Vertical");
        sideways = transform.TransformDirection(Vector3.right) * Input.GetAxis("Horizontal");
        //up = SingletonSettings.GetKey(SingletonSettings.Keybindings.jump) && controller.isGrounded ? Vector3.up * jumpHeight : Vector3.zero;
        movement = (up * 100) + ((forward + sideways) * 10 * Time.deltaTime * speed);

        //Combine vectors and Multiply by DeltaTime to ensure smooth movement at different framerates.
        //Also multiply by 10*speed to ensure correct speed in different states
         if (controller.isGrounded && Input.GetKey(KeyCode.Space))
        {
            movement.y = jumpHeight*50 * Time.deltaTime;
        }
        controller.SimpleMove(movement);
    }
    void OnGUI()
    {
        GUILayout.Label('

’ + Newtonsoft.Json.JsonConvert.SerializeObject(movement.y, Newtonsoft.Json.Formatting.Indented, new Newtonsoft.Json.JsonSerializerSettings
{
ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore
}));
}
}

If you want to jump you should use Move instead of SimpleMove. Someone already answered that over here: SimpleMove Jump - Questions & Answers - Unity Discussions