jzaefferer/jquery-validation — pull request #666 by ekonijn (2013-02-28 23:03:21+00:00)
Title: rebased Fix #639/#648 min/max validation

As promissed, here's the min/max commit, rebased to upstream head,
with the two commits squashed into one.

In 1.10.0, min/max validation was supported for input type="text",
where min/max were interpreted as numbers. This means min/max
for date would not work: min="2012-02-13" was interpreted as min="Not a Number".

In 1.11.0, min/max were no longer converted to numbers. This means
min/max for dates worked, but min/max for numbers failed:
"50" < "150" < "1000" does not hold.

For an example, see http://jsbin.com/awokex/3

This commit makes the behaviour of min/max dependent on input type:

* input type=text has numeric min/max, as in 1.10.0
* input type=date has working min/max for type date;
on mobile browsers you also get a date picker,
plus the browser may reject invalid dates before
javascript gets a chance to complain.
* input type=number or range get numeric min/max,
plus numeric keypad or slider on mobile browsers,
plus browser may reject invalid input before javascript
gets a chance to complain

Allowing use of min/max with type=number/range/date is important
for mobile browsers, where the numeric keypad or date picker
make the input much easier to use than a generic text input field.
In this situation jquery-validate remains necessary to support
older browsers that do not do input validation based on type
and min/max.

For situations where numeric input should be validated by jquery
without giving the browser a chance to validate the input format,
input type=text in combination with min/max can be used, as in 1.10.0.

Note that some older browsers do not correctly support Date conversion,
which can cause the validation suite to fail with message "Please enter a valid date."

In particular, this bug hit phantomjs 1.7.0 as used in validating 1.11.0;
the issue is solved in phantomjs 1.8.0 used now.

http://code.google.com/p/phantomjs/issues/detail?id=187#c6
https://github.com/ariya/phantomjs/commit/35c1971595

Tested with chromium, firefox, grunt.