How can I check the new value of a text field on keypress?
fromcharcode, javascript, keycode, onkeypress, onkeyup
Solution
The way I do this is simply with a variable along the lines of `prevValue`. At the end of the key press function, store the value in that variable, and only execute the function again if the value doesn't equal that previous value.
Problem
I have a single form field and I need to be able to detect when the field changes and execute some additional code using the new value of the field. I only want to execute the code if the key pushed actually changes the value of the text box. Here's the solution I came up with. ``` function onkeypress(e) { var value = this.value; // do something with } function onkeyup(e) { if ( e.which == 8 || e.keyCode == 46 ) { // delete or backspace keys this.onkeypress(e); } } ``` There's just one problem though. onkeypress is fired before the field's value is updated, so when I grab the value, I'm getting the previous value. I would use keyup exclusively if I knew a way to test whether the key changed the value or not, but some characters (like the arrow keys) have no effect on the field's value. Any ideas?