Well, I don't know what's wrong with your code (although I'm guessing it's got something to do with
IsOnFloor()), I can tell you that it would be much easier to help you if you added comments to your code.
Another thing that would be helpful would be if you print some of the variables at some points. Also, it doesn't seem like you're changing the position anywhere. Did you test the other movement, or just jumping?