Skip to content
This repository was archived by the owner on Dec 12, 2021. It is now read-only.

Commit f907eb8

Browse files
committedOct 17, 2017
Release version 0.12.0
1 parent ff04862 commit f907eb8

File tree

9 files changed

+90
-48
lines changed

9 files changed

+90
-48
lines changed
 

‎bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "validate",
33
"description": "Declarative validations for JavaScript",
44
"main": "validate.js",
5-
"version": "0.11.1",
5+
"version": "0.12.0",
66
"moduleType": [
77
"amd",
88
"globals",

‎component.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"repo" : "ansman/validate.js",
66
"main" : "validate.js",
77
"scripts" : ["validate.js"],
8-
"version" : "0.11.1",
8+
"version" : "0.12.0",
99
"license" : "MIT"
1010
}
1111

‎docs/validate.html

Lines changed: 41 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ <h1>validate.js</h1>
3131
</div>
3232

3333
<div class="content"><div class='highlight'><pre><span class="hljs-comment">/*!
34-
* validate.js 0.11.1
34+
* validate.js 0.12.0
3535
*
36-
* (c) 2013-2016 Nicklas Ansman, 2013 Wrapp
36+
* (c) 2013-2017 Nicklas Ansman, 2013 Wrapp
3737
* Validate.js may be freely distributed under the MIT license.
3838
* For all details and documentation:
3939
* http://validatejs.org/
@@ -73,12 +73,8 @@ <h1>validate.js</h1>
7373
, attr
7474
, validator;
7575

76-
<span class="hljs-keyword">for</span> (attr <span class="hljs-keyword">in</span> results) {
77-
<span class="hljs-keyword">for</span> (validator <span class="hljs-keyword">in</span> results[attr]) {
78-
<span class="hljs-keyword">if</span> (v.isPromise(results[attr][validator])) {
79-
<span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> <span class="hljs-built_in">Error</span>(<span class="hljs-string">"Use validate.async if you want support for promises"</span>);
80-
}
81-
}
76+
<span class="hljs-keyword">if</span> (results.some(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">r</span>) </span>{ <span class="hljs-keyword">return</span> v.isPromise(r.error); })) {
77+
<span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> <span class="hljs-built_in">Error</span>(<span class="hljs-string">"Use validate.async if you want support for promises"</span>);
8278
}
8379
<span class="hljs-keyword">return</span> validate.processValidationResults(results, options);
8480
};
@@ -128,8 +124,8 @@ <h1>validate.js</h1>
128124

129125
<div class="content"><div class='highlight'><pre> version: {
130126
major: <span class="hljs-number">0</span>,
131-
minor: <span class="hljs-number">11</span>,
132-
patch: <span class="hljs-number">1</span>,
127+
minor: <span class="hljs-number">12</span>,
128+
patch: <span class="hljs-number">0</span>,
133129
metadata: <span class="hljs-literal">null</span>,
134130
toString: <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>) </span>{
135131
<span class="hljs-keyword">var</span> version = v.format(<span class="hljs-string">"%{major}.%{minor}.%{patch}"</span>, v.version);
@@ -932,8 +928,9 @@ <h1>validate.js</h1>
932928
.toLowerCase();
933929
},
934930

935-
stringifyValue: <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">value</span>) </span>{
936-
<span class="hljs-keyword">return</span> v.prettify(value);
931+
stringifyValue: <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">value, options</span>) </span>{
932+
<span class="hljs-keyword">var</span> prettify = options &amp;&amp; options.prettify || v.prettify;
933+
<span class="hljs-keyword">return</span> prettify(value);
937934
},
938935

939936
isString: <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">value</span>) </span>{
@@ -1078,38 +1075,44 @@ <h1>validate.js</h1>
10781075
<span class="hljs-keyword">continue</span>;
10791076
}
10801077

1078+
name = input.name.replace(<span class="hljs-regexp">/\./g</span>, <span class="hljs-string">"\\\\."</span>);
10811079
value = v.sanitizeFormValue(input.value, options);
10821080
<span class="hljs-keyword">if</span> (input.type === <span class="hljs-string">"number"</span>) {
10831081
value = value ? +value : <span class="hljs-literal">null</span>;
10841082
} <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (input.type === <span class="hljs-string">"checkbox"</span>) {
10851083
<span class="hljs-keyword">if</span> (input.attributes.value) {
10861084
<span class="hljs-keyword">if</span> (!input.checked) {
1087-
value = values[input.name] || <span class="hljs-literal">null</span>;
1085+
value = values[name] || <span class="hljs-literal">null</span>;
10881086
}
10891087
} <span class="hljs-keyword">else</span> {
10901088
value = input.checked;
10911089
}
10921090
} <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (input.type === <span class="hljs-string">"radio"</span>) {
10931091
<span class="hljs-keyword">if</span> (!input.checked) {
1094-
value = values[input.name] || <span class="hljs-literal">null</span>;
1092+
value = values[name] || <span class="hljs-literal">null</span>;
10951093
}
10961094
}
1097-
values[input.name] = value;
1095+
values[name] = value;
10981096
}
10991097

11001098
inputs = form.querySelectorAll(<span class="hljs-string">"select[name]"</span>);
11011099
<span class="hljs-keyword">for</span> (i = <span class="hljs-number">0</span>; i &lt; inputs.length; ++i) {
11021100
input = inputs.item(i);
1101+
<span class="hljs-keyword">if</span> (v.isDefined(input.getAttribute(<span class="hljs-string">"data-ignored"</span>))) {
1102+
<span class="hljs-keyword">continue</span>;
1103+
}
1104+
11031105
<span class="hljs-keyword">if</span> (input.multiple) {
11041106
value = [];
11051107
<span class="hljs-keyword">for</span> (j <span class="hljs-keyword">in</span> input.options) {
11061108
option = input.options[j];
1107-
<span class="hljs-keyword">if</span> (option.selected) {
1109+
<span class="hljs-keyword">if</span> (option &amp;&amp; option.selected) {
11081110
value.push(v.sanitizeFormValue(option.value, options));
11091111
}
11101112
}
11111113
} <span class="hljs-keyword">else</span> {
1112-
value = v.sanitizeFormValue(input.options[input.selectedIndex].value, options);
1114+
<span class="hljs-keyword">var</span> _val = <span class="hljs-keyword">typeof</span> input.options[input.selectedIndex] !== <span class="hljs-string">'undefined'</span> ? input.options[input.selectedIndex].value : <span class="hljs-string">''</span>;
1115+
value = v.sanitizeFormValue(_val, options);
11131116
}
11141117
values[input.name] = value;
11151118
}
@@ -1217,7 +1220,8 @@ <h1>validate.js</h1>
12171220
<div class="content"><div class='highlight'><pre> convertErrorMessages: <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">errors, options</span>) </span>{
12181221
options = options || {};
12191222

1220-
<span class="hljs-keyword">var</span> ret = [];
1223+
<span class="hljs-keyword">var</span> ret = []
1224+
, prettify = options.prettify || v.prettify;
12211225
errors.forEach(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">errorInfo</span>) </span>{
12221226
<span class="hljs-keyword">var</span> error = v.result(errorInfo.error,
12231227
errorInfo.value,
@@ -1234,10 +1238,12 @@ <h1>validate.js</h1>
12341238
<span class="hljs-keyword">if</span> (error[<span class="hljs-number">0</span>] === <span class="hljs-string">'^'</span>) {
12351239
error = error.slice(<span class="hljs-number">1</span>);
12361240
} <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (options.fullMessages !== <span class="hljs-literal">false</span>) {
1237-
error = v.capitalize(v.prettify(errorInfo.attribute)) + <span class="hljs-string">" "</span> + error;
1241+
error = v.capitalize(prettify(errorInfo.attribute)) + <span class="hljs-string">" "</span> + error;
12381242
}
12391243
error = error.replace(<span class="hljs-regexp">/\\\^/g</span>, <span class="hljs-string">"^"</span>);
1240-
error = v.format(error, {value: v.stringifyValue(errorInfo.value)});
1244+
error = v.format(error, {
1245+
value: v.stringifyValue(errorInfo.value, options)
1246+
});
12411247
ret.push(v.extend({}, errorInfo, {error: error}));
12421248
});
12431249
<span class="hljs-keyword">return</span> ret;
@@ -1390,7 +1396,7 @@ <h1>validate.js</h1>
13901396

13911397
<div class="content"><div class='highlight'><pre> presence: <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">value, options</span>) </span>{
13921398
options = v.extend({}, <span class="hljs-keyword">this</span>.options, options);
1393-
<span class="hljs-keyword">if</span> (options.allowEmpty ? !v.isDefined(value) : v.isEmpty(value)) {
1399+
<span class="hljs-keyword">if</span> (options.allowEmpty !== <span class="hljs-literal">false</span> ? !v.isDefined(value) : v.isEmpty(value)) {
13941400
<span class="hljs-keyword">return</span> options.message || <span class="hljs-keyword">this</span>.message || <span class="hljs-string">"can't be blank"</span>;
13951401
}
13961402
},
@@ -1467,7 +1473,7 @@ <h1>validate.js</h1>
14671473
<span class="hljs-keyword">return</span> options.message || errors;
14681474
}
14691475
},
1470-
numericality: <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">value, options</span>) </span>{</pre></div></div>
1476+
numericality: <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">value, options, attribute, attributes, globalOptions</span>) </span>{</pre></div></div>
14711477

14721478
</li>
14731479

@@ -1498,7 +1504,10 @@ <h1>validate.js</h1>
14981504
lessThan: <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">v, c</span>) </span>{ <span class="hljs-keyword">return</span> v &lt; c; },
14991505
lessThanOrEqualTo: <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">v, c</span>) </span>{ <span class="hljs-keyword">return</span> v &lt;= c; },
15001506
divisibleBy: <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">v, c</span>) </span>{ <span class="hljs-keyword">return</span> v % c === <span class="hljs-number">0</span>; }
1501-
};</pre></div></div>
1507+
}
1508+
, prettify = options.prettify ||
1509+
(globalOptions &amp;&amp; globalOptions.prettify) ||
1510+
v.prettify;</pre></div></div>
15021511

15031512
</li>
15041513

@@ -1514,7 +1523,7 @@ <h1>validate.js</h1>
15141523
</div>
15151524

15161525
<div class="content"><div class='highlight'><pre> <span class="hljs-keyword">if</span> (v.isString(value) &amp;&amp; options.strict) {
1517-
<span class="hljs-keyword">var</span> pattern = <span class="hljs-string">"^(0|[1-9]\\d*)"</span>;
1526+
<span class="hljs-keyword">var</span> pattern = <span class="hljs-string">"^-?(0|[1-9]\\d*)"</span>;
15181527
<span class="hljs-keyword">if</span> (!options.onlyInteger) {
15191528
pattern += <span class="hljs-string">"(\\.\\d+)?"</span>;
15201529
}
@@ -1616,7 +1625,7 @@ <h1>validate.js</h1>
16161625

16171626
errors.push(v.format(msg, {
16181627
count: count,
1619-
type: v.prettify(name)
1628+
type: prettify(name)
16201629
}));
16211630
}
16221631
}
@@ -1678,7 +1687,7 @@ <h1>validate.js</h1>
16781687
<div class="pilwrap ">
16791688
<a class="pilcrow" href="#section-60">&#182;</a>
16801689
</div>
1681-
<p>86400000 is the number of seconds in a day, this is used to remove
1690+
<p>86400000 is the number of milliseconds in a day, this is used to remove
16821691
the time from the date</p>
16831692

16841693
</div>
@@ -1852,7 +1861,7 @@ <h1>validate.js</h1>
18521861
}, {
18531862
PATTERN: <span class="hljs-regexp">/^[a-z0-9\u007F-\uffff!#$%&amp;'*+\/=?^_`{|}~-]+(?:\.[a-z0-9\u007F-\uffff!#$%&amp;'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z]{2,}$/i</span>
18541863
}),
1855-
equality: <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">value, options, attribute, attributes</span>) </span>{
1864+
equality: <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">value, options, attribute, attributes, globalOptions</span>) </span>{
18561865
<span class="hljs-keyword">if</span> (!v.isDefined(value)) {
18571866
<span class="hljs-keyword">return</span>;
18581867
}
@@ -1872,10 +1881,13 @@ <h1>validate.js</h1>
18721881
<span class="hljs-keyword">var</span> otherValue = v.getDeepObjectValue(attributes, options.attribute)
18731882
, comparator = options.comparator || <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">v1, v2</span>) </span>{
18741883
<span class="hljs-keyword">return</span> v1 === v2;
1875-
};
1884+
}
1885+
, prettify = options.prettify ||
1886+
(globalOptions &amp;&amp; globalOptions.prettify) ||
1887+
v.prettify;
18761888

18771889
<span class="hljs-keyword">if</span> (!comparator(value, otherValue, options, attribute, attributes)) {
1878-
<span class="hljs-keyword">return</span> v.format(message, {attribute: v.prettify(options.attribute)});
1890+
<span class="hljs-keyword">return</span> v.format(message, {attribute: prettify(options.attribute)});
18791891
}
18801892
},</pre></div></div>
18811893

‎index.html

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -404,6 +404,7 @@
404404
<li>
405405
<a href="#changelog">Changelog</a>
406406
<ul>
407+
<li><a href="#changelog-0-12-0">0.12.0</a></li>
407408
<li><a href="#changelog-0-11-1">0.11.1</a></li>
408409
<li><a href="#changelog-0-11-0">0.11.0</a></li>
409410
<li><a href="#changelog-0-10-0">0.10.0</a></li>
@@ -463,15 +464,15 @@
463464
</p>
464465
<h2 id="downloads">Downloads</h2>
465466
<div class="download">
466-
<a class="btn btn-default" download href="validate.js">Development version (0.11.1)</a>
467+
<a class="btn btn-default" download href="validate.js">Development version (0.12.0)</a>
467468
<div class="info">
468469
<span class="details">33KB, uncompressed and plenty of comments</span>
469470
</div>
470471
</div>
471472
<div class="download">
472-
<a class="btn btn-primary" download href="validate.min.js">Production version (0.11.1)</a>
473+
<a class="btn btn-primary" download href="validate.min.js">Production version (0.12.0)</a>
473474
<div class="info">
474-
<span class="details">4.56KB, minified and gzipped</span><br>
475+
<span class="details">4.66KB, minified and gzipped</span><br>
475476
<a download href="validate.min.map">(Source map)</a>
476477
</div>
477478
</div>
@@ -490,7 +491,7 @@ <h2 id="downloads">Downloads</h2>
490491
<div id="installing">
491492
<h2>Installing</h2>
492493
<b>Browser/CDN</b>
493-
<pre><code class="html">&lt;script src="//cdnjs.cloudflare.com/ajax/libs/validate.js/0.11.1/validate.min.js"&gt;&lt;/script&gt;</code></pre>
494+
<pre><code class="html">&lt;script src="//cdnjs.cloudflare.com/ajax/libs/validate.js/0.12.0/validate.min.js"&gt;&lt;/script&gt;</code></pre>
494495
<b>Require.js/AMD</b>
495496
<pre><code class="javascript">require(["validate.js"], function(validate) {
496497
// ...
@@ -705,7 +706,8 @@ <h2>Validate function</h2>
705706
</p>
706707
<p class="description">
707708
If you want to customize how the attribute names are prettified you
708-
can just override the <code>validate.prettify</code> to your liking.
709+
can either override the <code>validate.prettify</code> function
710+
or you can give a function as the <b>prettify</b> option.
709711
</p>
710712
<p class="description">
711713
There is also a <b>format</b> option. To see more details about this
@@ -2354,9 +2356,15 @@ <h2>Utilities</h2>
23542356
</div>
23552357
<div id="changelog">
23562358
<h2>Changelog</h2>
2357-
<div id="changelog-wip">
2359+
<div id="changelog-0-12-0">
23582360
<h3>
2359-
<b class="version">WIP</b>
2361+
<b class="version">0.12.0</b>
2362+
-
2363+
<span class="date">Oct 17, 2017</span>
2364+
-
2365+
<a href="http://htmlpreview.github.com/?https://raw.github.com/ansman/validate.js/0.12.0/index.html">Docs</a>
2366+
-
2367+
<a href="https://github.com/ansman/validate.js/compare/0.11.1...0.12.0">Diff</a>
23602368
</h3>
23612369
<ul>
23622370
<li>
@@ -2389,6 +2397,26 @@ <h3>
23892397
Thanks <a href="https://github.com/ansman/validate.js/pull/188" target="_blank">James Tudsbury</a>
23902398
for reporting this.
23912399
</li>
2400+
<li>
2401+
Fix a bug in IE11.
2402+
Thanks <a href="https://github.com/ansman/validate.js/pull/183" target="_blank">Shawn Doucet</a>
2403+
for fixing this.
2404+
</li>
2405+
<li>
2406+
The typescript definitions have been updated.
2407+
Thanks <a href="https://github.com/ansman/validate.js/pull/185" target="_blank">jKey Lu</a>
2408+
for fixing this.
2409+
</li>
2410+
<li>
2411+
Handle select inputs without a selection when collecting form values.
2412+
Thanks <a href="https://github.com/ansman/validate.js/pull/202" target="_blank">johnturingan</a>
2413+
for fixing this.
2414+
</li>
2415+
<li>
2416+
You can now specify custom prettify function in the global settings.
2417+
Thanks <a href="https://github.com/ansman/validate.js/pull/164" target="_blank">Tim van der Horst</a>
2418+
for fixing this.
2419+
</li>
23922420
</ul>
23932421
</div>
23942422
<div id="changelog-0-11-1">

‎package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "validate.js",
3-
"version": "0.11.1",
3+
"version": "0.12.0",
44
"author": "Nicklas Ansman <nicklas@ansman.se>",
55
"description": "Declarative validations for JavaScript",
66
"main": "validate.js",

‎validate.d.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@
22
declare namespace validate {
33
export interface ValidateOption {
44
format?: string;
5+
prettify?: Function;
56
fullMessages?: boolean;
67
}
78

89
export interface AsyncValidateOption {
9-
WrapErrors?: Function;
10+
wrapErrors?: Function;
11+
prettify?: Function;
1012
cleanAttributes?: boolean;
1113
}
1214

‎validate.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*!
2-
* validate.js 0.11.1
2+
* validate.js 0.12.0
33
*
4-
* (c) 2013-2016 Nicklas Ansman, 2013 Wrapp
4+
* (c) 2013-2017 Nicklas Ansman, 2013 Wrapp
55
* Validate.js may be freely distributed under the MIT license.
66
* For all details and documentation:
77
* http://validatejs.org/
@@ -52,9 +52,9 @@
5252
// The toString function will allow it to be coerced into a string
5353
version: {
5454
major: 0,
55-
minor: 11,
56-
patch: 1,
57-
metadata: "development",
55+
minor: 12,
56+
patch: 0,
57+
metadata: null,
5858
toString: function() {
5959
var version = v.format("%{major}.%{minor}.%{patch}", v.version);
6060
if (!v.isEmpty(v.version.metadata)) {

0 commit comments

Comments
 (0)