Hola, JuanKa
En efecto, parece que tienes un revoltillo.
Por ahora, sólo admite entre 48 y 57, entre 65 y 122, más el 32 (espacio) y el 39
Al intentar incluir el 164 (la eñe) no te funciona porque es mayor de 122 y por ello está excluido previamente.
Puedes combinarlo:
Código:
if ( event.keyCode != 32 && event.keyCode != 39 && (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 65 || (event.keyCode >122 && event.keyCode <164) || event.keyCode >164 )
o hacerlo en positivo (indicando cuáles valen):
Código:
if ( event.keyCode == 32 || event.keyCode == 39 || event.keyCode == 164 )
else if ( event.keyCode >= 48 && event.keyCode <= 57)
else if ( event.keyCode >= 65 && event.keyCode <= 122)
else { alert('Ha ingresado un caracter no permitido'); }
La segunda es más farragosa pero se entiende mejor, menos probabilidad de errores al ampliarla. Creo que está bien; pruébalo