This is another browser stupidity. Dont send anything until the submit button is pressed. It's the browsers job to implement the text edit box and spell check, not every website.
Being able to see keystrokes in Javascript is pretty useful for things like autocomplete. Say you want to send an invoice to "Foo Bar, Inc.". Do you really want to type that every time? Do you want to type "Foo" and then click submit, and then be taken to search results? Why make a 700ms task into a 5s task, especially when you're doing it hundreds of times a day.
There are hardened browsers that will make the script wait for a while to get the key events. That seems like the right solution; most people using controlled enterprise apps don't have to deal with huge amounts of input lag, while people that are paranoid won't be profiled by their typing cadence.