Change `number` to always use `X.input.text`

For `type="number"`, browsers don't trigger `change` events, nor do they
submit such values to the server they submit such values to the server,
if the text in the input field doesn't look like a number --> no error
messages from the server, erroneous value is silently ignored by the
browser.