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