Una curiosità: io ho provato questo codice e sembra funzionare:
...
Secondo te è scorretto? Tanto per imparare qualcosa di nuovo ...
La differenza è che nel tuo codice l'evento onkeypress viene catturato ogni volta che viene premuto un tasto su un qualsiasi campo del form - non cambia nulla per la select - anche se teoricamente non è necessario gestirlo quando il focus è su gli altri campi.