Hi,
yes, unfortunately there's not really an easy and stable way of only allowing to input numbers, though you can still leave the type="number" as it will be more convenient for mobile users.
I agree that checking after pushing the registration button is the better solution in this case and you can quite easily do that in Hikashop. On your custom field page you can write your own error message that should appear if someone enters something invalid, by typing your message in the Custom error message field.
You then need to tell Hikashop what is a valid input, which you can do in the Regular expression check field. So for example if only numbers are allowed, you could use [0-9]+. If a user then enters something else than a number, you will get the error message. If you need a more advanced check, I would suggest to google "regular expressions" for more information. Hope that helps!
Kind regards,