Better validation (no .parseInt errors and keypress based)