Play sound upon Input in Javascript

Using 1 of the default scripts by unity for its FPSInputController but finding some difficulty in playing an audio clip of the player jumping. Code is as follows:

 private var motor : CharacterMotor;
 public var jumpSound : AudioClip;

  // Use this for initialization
  function Awake () {
  motor = GetComponent(CharacterMotor);
 }

 // Update is called once per frame
 function Update () {
 // Get the input vector from keyboard or analog stick
 var directionVector = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));

 if (directionVector != Vector3.zero) {
    // Get the length of the directon vector and then normalize it
    // Dividing by the length is cheaper than normalizing when we already have the length anyway
    var directionLength = directionVector.magnitude;
    directionVector = directionVector / directionLength;
	
    // Make sure the length is no bigger than 1
    directionLength = Mathf.Min(1, directionLength);
	
    // Make the input vector more sensitive towards the extremes and less sensitive in the middle
    // This makes it easier to control slow speeds when using analog sticks
    directionLength = directionLength * directionLength;
	
    // Multiply the normalized direction vector by the modified length
    directionVector = directionVector * directionLength;
}

// Apply the direction to the CharacterMotor
motor.inputMoveDirection = transform.rotation * directionVector;
motor.inputJump = Input.GetButton("Jump");
if (Input.GetButton("Jump"))
{
    
    jumpSound.PlayOneShot(jumpSound, 0.3); 
    jumpSound.Play();
}
}

// Require a character controller to be attached to the same game object
@script RequireComponent (CharacterMotor)
@script AddComponentMenu ("Character/FPS Input Controller")

Any ideas as to why this is not playing and how I can go about fixing it?

This might help you out.

@script RequireComponent(AudioSource)
	function Start() {
		audio.Play();
		// Delay a clip by 1 sec (44100 samples)
		audio.Play(44100);
	}