myInput.value is one keystroke behind when I examine it in a keyPress event handler. So if the users types \"a\", myInput.value gives me \"\". Then when the user types \"b\"
Use the keyUp event, it should definitely give you the value you are looking for.
When I had this problem, the thing I actually wanted was the oninput event handler.
One notable difference between this and the keyUp solution is that if you e.g. hold down a key to repeat it, oninput will get called every time the key repeats, but keyUp will only get called when the key is released.