In my game, I make most inputs on a timer that on receipt of that input it then registers that request and disables that key for like 300-500ms so that wont stuff things up by holding down input keys. Then after the timer allow input again.
Another way is to only reset the input once received when the key is left up then allow that same input again - this is better actually.