Skip to content

Commit 35d31cd

Browse files
committed
netteForms: the 'number' element value is not available only on badInput error
1 parent 6f049c1 commit 35d31cd

1 file changed

Lines changed: 4 additions & 54 deletions

File tree

src/assets/netteForms.js

Lines changed: 4 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -338,6 +338,10 @@
338338
* Validates single rule.
339339
*/
340340
Nette.validateRule = function(elem, op, arg, value) {
341+
if (elem.type === 'number' && elem.validity.badInput) {
342+
return op === 'filled';
343+
}
344+
341345
value = value === undefined ? {value: Nette.getEffectiveValue(elem, true)} : value;
342346

343347
if (op.charAt(0) === ':') {
@@ -362,9 +366,6 @@
362366

363367
Nette.validators = {
364368
filled: function(elem, arg, val) {
365-
if (elem.type === 'number' && elem.validity.badInput) {
366-
return true;
367-
}
368369
return val !== '' && val !== false && val !== null
369370
&& (!Array.isArray(val) || !!val.length)
370371
&& (!window.FileList || !(val instanceof window.FileList) || val.length);
@@ -410,35 +411,14 @@
410411
},
411412

412413
minLength: function(elem, arg, val) {
413-
if (elem.type === 'number') {
414-
if (elem.validity.tooShort) {
415-
return false;
416-
} else if (elem.validity.badInput) {
417-
return null;
418-
}
419-
}
420414
return val.length >= arg;
421415
},
422416

423417
maxLength: function(elem, arg, val) {
424-
if (elem.type === 'number') {
425-
if (elem.validity.tooLong) {
426-
return false;
427-
} else if (elem.validity.badInput) {
428-
return null;
429-
}
430-
}
431418
return val.length <= arg;
432419
},
433420

434421
length: function(elem, arg, val) {
435-
if (elem.type === 'number') {
436-
if (elem.validity.tooShort || elem.validity.tooLong) {
437-
return false;
438-
} else if (elem.validity.badInput) {
439-
return null;
440-
}
441-
}
442422
arg = Array.isArray(arg) ? arg : [arg, arg];
443423
return (arg[0] === null || val.length >= arg[0]) && (arg[1] === null || val.length <= arg[1]);
444424
},
@@ -496,23 +476,14 @@
496476
},
497477

498478
numeric: function(elem, arg, val) {
499-
if (elem.type === 'number' && elem.validity.badInput) {
500-
return false;
501-
}
502479
return (/^[0-9]+$/).test(val);
503480
},
504481

505482
integer: function(elem, arg, val) {
506-
if (elem.type === 'number' && elem.validity.badInput) {
507-
return false;
508-
}
509483
return (/^-?[0-9]+$/).test(val);
510484
},
511485

512486
'float': function(elem, arg, val, value) {
513-
if (elem.type === 'number' && elem.validity.badInput) {
514-
return false;
515-
}
516487
val = val.replace(/ +/g, '').replace(/,/g, '.');
517488
if ((/^-?[0-9]*\.?[0-9]+$/).test(val)) {
518489
value.value = val;
@@ -522,35 +493,14 @@
522493
},
523494

524495
min: function(elem, arg, val) {
525-
if (elem.type === 'number') {
526-
if (elem.validity.rangeUnderflow) {
527-
return false;
528-
} else if (elem.validity.badInput) {
529-
return null;
530-
}
531-
}
532496
return arg === null || parseFloat(val) >= arg;
533497
},
534498

535499
max: function(elem, arg, val) {
536-
if (elem.type === 'number') {
537-
if (elem.validity.rangeOverflow) {
538-
return false;
539-
} else if (elem.validity.badInput) {
540-
return null;
541-
}
542-
}
543500
return arg === null || parseFloat(val) <= arg;
544501
},
545502

546503
range: function(elem, arg, val) {
547-
if (elem.type === 'number') {
548-
if (elem.validity.rangeUnderflow || elem.validity.rangeOverflow) {
549-
return false;
550-
} else if (elem.validity.badInput) {
551-
return null;
552-
}
553-
}
554504
return Array.isArray(arg) ?
555505
((arg[0] === null || parseFloat(val) >= arg[0]) && (arg[1] === null || parseFloat(val) <= arg[1])) : null;
556506
},

0 commit comments

Comments
 (0)