* Core: Fix code style to pacify jscs
* Core: Fix validation for input type="date" (#2359)
Test case contributed by @nenadvicentic
Co-authored-by: Kieran <kieran@supportpal.com>
The user can change the value of an element before validating
the element in question. The new value will be then used by
the associated methods instead of the `real one`.
Closes#1602
This regressed at some point, probably when rules-as-data-attributes where
introduced, since those are automatically parsed as JSON. For the unprocessed
attributes, the array brackets have to be removed.
Also fixes the milk demo, which specified rangelength as the message, instead of
minlength, which it actually uses.
Fixes#1087
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 (or not type attribute) 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.
These rules are fully suitable to check any comparable JavaScript objects such as strings or dates. Also clearing prevents HTML5 date input fields to work when these rules are coming from HTML.