You can use a regular expression to replace each special character to void.
jQuery(document).ready(function() {
jQuery('.uppercase').keyup(function()
{
jQuery(this).val(jQuery(this).val().replace(/[^\w\s]/gi, '').toUpperCase());
});
});
You are sending what specified by regular explession to void character ('').
In the regular expression you can see the key ^ which means not, the key \w which means alphanumeric characters and \s which means spaces characters. So you are sending to void everything that's not alphanumeric and that's not space.
Remove \s inside the RegEx if you dont't want to allow spaces in your field.
PS. this does not prevent a user to submit special characters, you have to check server-side.
An equivalent -but cleaner- regular expression could be:
/\W/gi
You can check the link above to see what this does mean