2012-02-10 12:39, brenton strine wrote:

Regarding the an input with type in the "number" state, the spec states
that the "pattern" attribute "must not be specified and do[es] not
apply to the element".

That’s because the pattern attribute is for constraining text data using a regular expression.

Why is it specifically blocked? Doesn't that encourage the use of a less
semantic "text" input type for numbers that need to be validated beyond
simple max and min?

A regular expression, which operates on texts, is not a _logical_ way to set constraints on _numbers_. A number is a mathematical entity; a numeral, such as 2000 or 2.000 or 2,000 or MM, is a textual presentation of a number.

At a more concrete level, type="number" really means type="spinbox", but modern design of markup languages favors names that look more semantic. (If type="checkbox" were invented today, it would probably be called type="boolean".)

What if you want the number to be either 13 or 16 digits long, as with a
credit card

pattern="(\d{5}([\-]\d{4})?)"

Then you use type="text". Whether the value is a number or just a sequence of digits is debatable. But in any case you don’t want to create a spinbox.

Yucca

Reply via email to