Why don't you try for the
onkeyup event. You don't even need to read the last character and concatenate it.
Keypress event is a combination of
keydown and
keyup event. Below is the sample code to test the response when the
keypress and
keyup event occurs.
Test KeyPress event: <br />
<input type="text" id="fname1" onkeypress="upperCase(this.id)" /><br />
Test KeyUp Event: <br />
<input type="text" id="fname2" onkeyup="upperCase(this.id)" /><br />
<script type="text/javascript">
function upperCase(x)
{
var y=document.getElementById(x).value;
document.getElementById(x).value=y.toUpperCase();
}
</script>
During the test run, you will notice that the last character does not convert to its uppercase during the
keypress event, but it gets converted during the
keyup event.
Also, the
keypress event does not allow you to handle the control keys like -
SHIFT, ALTER, CONTROL, while the
keyup and
keydown events allow you to handle these keys.
Hope I have made my point clear to you.
Thanks & regards,
Niral Soni