webshims-rails 1.11.3.1 → 1.11.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/webshims-rails/version.rb +2 -2
- data/vendor/assets/javascripts/webshims/extras/modernizr-custom.js +114 -104
- data/vendor/assets/javascripts/webshims/extras/mousepress.js +5 -5
- data/vendor/assets/javascripts/webshims/polyfiller.js +156 -207
- data/vendor/assets/javascripts/webshims/shims/$ajax.js +862 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvas/flashcanvas.js +20 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/flashcanvas.js +20 -0
- data/vendor/assets/javascripts/webshims/shims/color-picker.js +12 -12
- data/vendor/assets/javascripts/webshims/shims/combos/1.js +62 -32
- data/vendor/assets/javascripts/webshims/shims/combos/10.js +192 -509
- data/vendor/assets/javascripts/webshims/shims/combos/11.js +96 -415
- data/vendor/assets/javascripts/webshims/shims/combos/12.js +36 -26
- data/vendor/assets/javascripts/webshims/shims/combos/13.js +36 -26
- data/vendor/assets/javascripts/webshims/shims/combos/14.js +1007 -359
- data/vendor/assets/javascripts/webshims/shims/combos/15.js +310 -235
- data/vendor/assets/javascripts/webshims/shims/combos/16.js +313 -237
- data/vendor/assets/javascripts/webshims/shims/combos/17.js +96 -415
- data/vendor/assets/javascripts/webshims/shims/combos/18.js +1003 -678
- data/vendor/assets/javascripts/webshims/shims/combos/19.js +1085 -387
- data/vendor/assets/javascripts/webshims/shims/combos/2.js +161 -127
- data/vendor/assets/javascripts/webshims/shims/combos/20.js +1086 -388
- data/vendor/assets/javascripts/webshims/shims/combos/21.js +168 -96
- data/vendor/assets/javascripts/webshims/shims/combos/22.js +36 -27
- data/vendor/assets/javascripts/webshims/shims/combos/23.js +2 -1
- data/vendor/assets/javascripts/webshims/shims/combos/24.js +411 -172
- data/vendor/assets/javascripts/webshims/shims/combos/25.js +1085 -387
- data/vendor/assets/javascripts/webshims/shims/combos/26.js +96 -94
- data/vendor/assets/javascripts/webshims/shims/combos/3.js +163 -140
- data/vendor/assets/javascripts/webshims/shims/combos/30.js +166 -141
- data/vendor/assets/javascripts/webshims/shims/combos/31.js +159 -126
- data/vendor/assets/javascripts/webshims/shims/combos/4.js +103 -109
- data/vendor/assets/javascripts/webshims/shims/combos/5.js +98 -417
- data/vendor/assets/javascripts/webshims/shims/combos/6.js +101 -418
- data/vendor/assets/javascripts/webshims/shims/combos/7.js +168 -142
- data/vendor/assets/javascripts/webshims/shims/combos/8.js +165 -141
- data/vendor/assets/javascripts/webshims/shims/combos/9.js +195 -510
- data/vendor/assets/javascripts/webshims/shims/details.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/dom-extend.js +96 -94
- data/vendor/assets/javascripts/webshims/shims/es5.js +908 -264
- data/vendor/assets/javascripts/webshims/shims/excanvas.js +16 -1
- data/vendor/assets/javascripts/webshims/shims/form-combat.js +147 -0
- data/vendor/assets/javascripts/webshims/shims/form-core.js +60 -31
- data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +114 -33
- data/vendor/assets/javascripts/webshims/shims/form-datalist.js +3 -1
- data/vendor/assets/javascripts/webshims/shims/form-message.js +7 -15
- data/vendor/assets/javascripts/webshims/shims/form-native-extend.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +88 -410
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +143 -93
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +268 -79
- data/vendor/assets/javascripts/webshims/shims/form-validation.js +116 -81
- data/vendor/assets/javascripts/webshims/shims/form-validators.js +23 -10
- data/vendor/assets/javascripts/webshims/shims/forms-picker.js +605 -9
- data/vendor/assets/javascripts/webshims/shims/geolocation.js +51 -39
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-de.js +78 -33
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-en.js +24 -6
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-nl.js +110 -49
- data/vendor/assets/javascripts/webshims/shims/json-storage.js +3 -1
- data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +2 -1
- data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +81 -30
- data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +131 -54
- data/vendor/assets/javascripts/webshims/shims/plugins/jquery.ui.position.js +497 -0
- data/vendor/assets/javascripts/webshims/shims/range-ui.js +8 -5
- data/vendor/assets/javascripts/webshims/shims/sizzle.js +2026 -0
- data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +401 -521
- data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +1 -1
- data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +94 -82
- data/vendor/assets/javascripts/webshims/shims/styles/shim.css +250 -321
- data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
- data/vendor/assets/javascripts/webshims/shims/track-ui.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/track.js +34 -25
- metadata +7 -3
@@ -1,15 +1,23 @@
|
|
1
1
|
webshims.register('form-validation', function($, webshims, window, document, undefined, options){
|
2
|
+
"use strict";
|
3
|
+
|
2
4
|
var isWebkit = 'webkitURL' in window;
|
3
5
|
var chromeBugs = isWebkit && Modernizr.formvalidation && !webshims.bugs.bustedValidity;
|
4
6
|
var webkitVersion = chromeBugs && parseFloat((navigator.userAgent.match(/Safari\/([\d\.]+)/) || ['', '999999'])[1], 10);
|
5
|
-
var invalidClass = options.iVal.errorClass || 'user-error';
|
6
|
-
var validClass = options.iVal.successClass || 'user-success';
|
7
7
|
|
8
|
-
var
|
9
|
-
var
|
10
|
-
var
|
8
|
+
var iVal = options.iVal;
|
9
|
+
var invalidClass = iVal.errorClass || 'user-error';
|
10
|
+
var validClass = iVal.successClass || 'user-success';
|
11
|
+
|
12
|
+
var invalidWrapperClass = iVal.errorWrapperClass || 'ws-invalid';
|
13
|
+
var successWrapperClass = iVal.successWrapperClass || 'ws-success';
|
14
|
+
var errorBoxClass = iVal.errorBoxClass || 'ws-errorbox';
|
15
|
+
var errorMessageClass = iVal.errorMessageClass || 'ws-errormessage';
|
11
16
|
var checkTypes = {checkbox: 1, radio: 1};
|
12
17
|
|
18
|
+
var loader = webshims.loader;
|
19
|
+
var addModule = loader.addModule;
|
20
|
+
|
13
21
|
var emptyJ = $([]);
|
14
22
|
var isValid = function(elem){
|
15
23
|
return ($.prop(elem, 'validity') || {valid: 1}).valid;
|
@@ -80,7 +88,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
80
88
|
'datetime-local': 1
|
81
89
|
};
|
82
90
|
var switchValidityClass = function(e){
|
83
|
-
if(!
|
91
|
+
if(!iVal.sel){return;}
|
84
92
|
var elem, timer, shadowElem, shadowType;
|
85
93
|
if(!e.target){return;}
|
86
94
|
elem = $(e.target).getNativeElement()[0];
|
@@ -154,14 +162,15 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
154
162
|
|
155
163
|
$.removeData(elem, 'webshimsswitchvalidityclass');
|
156
164
|
};
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
+
if(shadowElem.triggerHandler('wsallowinstantvalidation', [e]) !== false){
|
166
|
+
if(timer){
|
167
|
+
clearTimeout(timer);
|
168
|
+
}
|
169
|
+
if(e.type == 'refreshvalidityui'){
|
170
|
+
switchClass();
|
171
|
+
} else {
|
172
|
+
$.data(elem, 'webshimsswitchvalidityclass', setTimeout(switchClass, 9));
|
173
|
+
}
|
165
174
|
}
|
166
175
|
};
|
167
176
|
|
@@ -241,8 +250,23 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
241
250
|
$.extend(webshims.wsPopover, {
|
242
251
|
|
243
252
|
|
244
|
-
isInElement: function(
|
245
|
-
|
253
|
+
isInElement: function(containers, contained){
|
254
|
+
if(!$.isArray(containers)){
|
255
|
+
containers = [containers];
|
256
|
+
}
|
257
|
+
var i, len, container;
|
258
|
+
var ret = false;
|
259
|
+
for(i = 0, len = containers.length; i < len; i++){
|
260
|
+
container = containers[i];
|
261
|
+
if(container && container.jquery){
|
262
|
+
container = container[0];
|
263
|
+
}
|
264
|
+
if(container && (container == contained || $.contains(container, contained))){
|
265
|
+
ret = true;
|
266
|
+
break;
|
267
|
+
}
|
268
|
+
}
|
269
|
+
return ret;
|
246
270
|
},
|
247
271
|
show: function(element){
|
248
272
|
if(this.isVisible){return;}
|
@@ -274,8 +298,8 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
274
298
|
}, 9);
|
275
299
|
}, 9);
|
276
300
|
|
277
|
-
$(document).on('focusin'+this.eventns+' mousedown'+this.eventns, function(e){
|
278
|
-
if(that.options.hideOnBlur && !that.stopBlur && !that.isInElement(that.lastElement[0]
|
301
|
+
$(document.body || document).on('focusin'+this.eventns+' mousedown'+this.eventns, function(e){
|
302
|
+
if(that.options.hideOnBlur && !that.stopBlur && !that.isInElement([that.lastElement[0], element[0], that.element[0]], e.target)){
|
279
303
|
that.hide();
|
280
304
|
}
|
281
305
|
});
|
@@ -294,7 +318,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
294
318
|
if(!appendElement && !invalidParent.test(parent.nodeName)){
|
295
319
|
appendElement = parent;
|
296
320
|
}
|
297
|
-
if(appendElement && $.
|
321
|
+
if(appendElement && $.css(parent, 'overflow') == 'hidden' && $.css(parent, 'position') != 'static'){
|
298
322
|
appendElement = false;
|
299
323
|
}
|
300
324
|
}
|
@@ -352,6 +376,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
352
376
|
clear: function(){
|
353
377
|
$(window).off(this.eventns);
|
354
378
|
$(document).off(this.eventns);
|
379
|
+
$(document.body).off(this.eventns);
|
355
380
|
this.element.off('transitionend'+this.eventns);
|
356
381
|
this.stopBlur = false;
|
357
382
|
this.lastOpts = false;
|
@@ -434,7 +459,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
434
459
|
try {
|
435
460
|
focusElem[0].focus();
|
436
461
|
} catch(e){}
|
437
|
-
|
462
|
+
api.element.triggerHandler('pospopover');
|
438
463
|
};
|
439
464
|
|
440
465
|
if(scrollTop > elemTop){
|
@@ -476,11 +501,20 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
476
501
|
fade: {
|
477
502
|
show: 'fadeIn',
|
478
503
|
hide: 'fadeOut'
|
504
|
+
},
|
505
|
+
no: {
|
506
|
+
show: 'show',
|
507
|
+
hide: 'hide'
|
479
508
|
}
|
480
509
|
};
|
481
|
-
if(!fx[
|
482
|
-
|
510
|
+
if(!iVal.fx || !fx[iVal.fx]){
|
511
|
+
iVal.fx = 'slide';
|
512
|
+
}
|
513
|
+
|
514
|
+
if(!$.fn[fx[iVal.fx].show]){
|
515
|
+
iVal.fx = 'no';
|
483
516
|
}
|
517
|
+
|
484
518
|
webshims.errorbox = {
|
485
519
|
create: function(elem, fieldWrapper){
|
486
520
|
if(!fieldWrapper){
|
@@ -489,7 +523,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
489
523
|
var errorBox = $('div.'+errorBoxClass, fieldWrapper);
|
490
524
|
|
491
525
|
if(!errorBox.length){
|
492
|
-
errorBox = $('<div class="'+ errorBoxClass +'" hidden="hidden">');
|
526
|
+
errorBox = $('<div class="'+ errorBoxClass +'" hidden="hidden" style="display: none;">');
|
493
527
|
fieldWrapper.append(errorBox);
|
494
528
|
}
|
495
529
|
|
@@ -498,20 +532,23 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
498
532
|
},
|
499
533
|
getFieldWrapper: function(elem){
|
500
534
|
var fieldWrapper;
|
501
|
-
if(
|
502
|
-
fieldWrapper = (typeof
|
535
|
+
if(iVal.fieldWrapper){
|
536
|
+
fieldWrapper = (typeof iVal.fieldWrapper == "function") ? iVal.fieldWrapper.apply(this, arguments) : $(elem).parent().closest(iVal.fieldWrapper);
|
503
537
|
if(!fieldWrapper.length){
|
504
538
|
fieldWrapper = false;
|
505
|
-
webshims.error("could not find fieldwrapper: "+
|
539
|
+
webshims.error("could not find fieldwrapper: "+ iVal.fieldWrapper);
|
506
540
|
}
|
507
541
|
}
|
508
542
|
if(!fieldWrapper){
|
509
|
-
fieldWrapper = $(elem).parent().closest(':not(span, label, em, strong,
|
543
|
+
fieldWrapper = $(elem).parent().closest(':not(span), :not(label), :not(em), :not(strong), :not(p)');
|
510
544
|
}
|
511
545
|
return fieldWrapper;
|
512
546
|
},
|
513
547
|
_createContentMessage: (function(){
|
514
548
|
var fields = {};
|
549
|
+
var deCamelCase = function(c){
|
550
|
+
return '-'+(c).toLowerCase();
|
551
|
+
};
|
515
552
|
var getErrorName = function(elem){
|
516
553
|
var ret = $(elem).data('errortype');
|
517
554
|
if(!ret){
|
@@ -524,15 +561,9 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
524
561
|
}
|
525
562
|
return ret || 'defaultMessage';
|
526
563
|
};
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
var cName = name.replace(/[A-Z]/, function(c){
|
531
|
-
return '-'+(c).toLowerCase();
|
532
|
-
});
|
533
|
-
fields[name] = '.'+cName+', .'+name+', .'+(name).toLowerCase()+', [data-errortype="'+ name +'"]';
|
534
|
-
}
|
535
|
-
});
|
564
|
+
$.each(["customError","badInput","typeMismatch","rangeUnderflow","rangeOverflow","stepMismatch","tooLong","tooShort","patternMismatch","valueMissing","tooShort"], function(i, name){
|
565
|
+
var cName = name.replace(/[A-Z]/, deCamelCase);
|
566
|
+
fields[name] = '.'+cName+', .'+name+', .'+(name).toLowerCase()+', [data-errortype="'+ name +'"]';
|
536
567
|
});
|
537
568
|
return function(elem, errorBox){
|
538
569
|
var extended = false;
|
@@ -540,18 +571,27 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
540
571
|
if(typeof errorMessages == 'string'){
|
541
572
|
errorMessages = {defaultMessage: errorMessages};
|
542
573
|
}
|
543
|
-
$(
|
574
|
+
$(errorBox).children().each(function(){
|
544
575
|
var name = getErrorName(this);
|
545
576
|
if(!errorMessages[name]){
|
546
577
|
extended = true;
|
547
578
|
errorMessages[name] = $(this).html();
|
548
579
|
}
|
549
580
|
});
|
581
|
+
|
550
582
|
if(extended){
|
551
583
|
$(elem).data('errormessage', errorMessages);
|
552
584
|
}
|
585
|
+
if(webshims.getOptions){
|
586
|
+
webshims.getOptions(elem, 'errormessage');
|
587
|
+
}
|
553
588
|
};
|
554
589
|
})(),
|
590
|
+
initIvalContentMessage: function(elem){
|
591
|
+
if($(elem).jProp('form').is(iVal.sel)){
|
592
|
+
this.get(elem);
|
593
|
+
}
|
594
|
+
},
|
555
595
|
get: function(elem, fieldWrapper){
|
556
596
|
if(!fieldWrapper){
|
557
597
|
fieldWrapper = this.getFieldWrapper(elem);
|
@@ -590,7 +630,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
590
630
|
} else {
|
591
631
|
fieldWrapper.removeClass(invalidWrapperClass);
|
592
632
|
errorBox.message = '';
|
593
|
-
errorBox[fx[
|
633
|
+
errorBox[fx[iVal.fx].hide](function(){
|
594
634
|
$(this).attr({hidden: 'hidden'});
|
595
635
|
});
|
596
636
|
}
|
@@ -602,17 +642,17 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
602
642
|
return fieldWrapper;
|
603
643
|
},
|
604
644
|
recheckInvalidInput: function(input){
|
605
|
-
if(
|
645
|
+
if(iVal.recheckDelay && iVal.recheckDelay > 90){
|
606
646
|
var timer;
|
607
647
|
var throttle = function(){
|
608
648
|
switchValidityClass({type: 'input', target: input});
|
609
649
|
};
|
610
650
|
$(input)
|
611
|
-
.filter('input:not([type="checkbox"]
|
651
|
+
.filter('input:not([type="checkbox"]):not([type="radio"])')
|
612
652
|
.off('.recheckinvalid')
|
613
653
|
.on('input.recheckinvalid', function(){
|
614
654
|
clearTimeout(timer);
|
615
|
-
timer = setTimeout(throttle,
|
655
|
+
timer = setTimeout(throttle, iVal.recheckDelay);
|
616
656
|
})
|
617
657
|
.on('focusout.recheckinvalid', function(){
|
618
658
|
clearTimeout(timer);
|
@@ -626,7 +666,10 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
626
666
|
var message = $(elem).getErrorMessage();
|
627
667
|
|
628
668
|
if(box.message != message){
|
629
|
-
box.stop
|
669
|
+
if(box.stop){
|
670
|
+
box.stop(true, true);
|
671
|
+
}
|
672
|
+
box.html('<p class="'+ errorMessageClass +'"">'+ message +'</p>');
|
630
673
|
box.message = message;
|
631
674
|
fieldWrapper.addClass(invalidWrapperClass).removeClass(successWrapperClass);
|
632
675
|
this.recheckInvalidInput(elem);
|
@@ -634,7 +677,7 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
634
677
|
box
|
635
678
|
.css({display: 'none'})
|
636
679
|
.removeAttr('hidden')
|
637
|
-
[fx[
|
680
|
+
[fx[iVal.fx].show]()
|
638
681
|
;
|
639
682
|
}
|
640
683
|
}
|
@@ -658,34 +701,34 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
658
701
|
$(document.body)
|
659
702
|
.on({
|
660
703
|
'changedvaliditystate': function(e){
|
661
|
-
if(
|
704
|
+
if(iVal.sel){
|
662
705
|
var form = $(e.target).jProp('form');
|
663
|
-
if(form.is(
|
706
|
+
if(form.is(iVal.sel)){
|
664
707
|
webshims.errorbox.toggle(e.target);
|
665
708
|
}
|
666
709
|
}
|
667
710
|
},
|
668
711
|
resetvalidityui: function(e){
|
669
|
-
if (
|
712
|
+
if (iVal.sel) {
|
670
713
|
var form = $(e.target).jProp('form');
|
671
|
-
if (form.is(
|
714
|
+
if (form.is(iVal.sel)) {
|
672
715
|
webshims.errorbox.reset(e.target);
|
673
716
|
}
|
674
717
|
}
|
675
718
|
},
|
676
719
|
firstinvalid: function(e){
|
677
|
-
if(
|
720
|
+
if(iVal.sel && iVal.handleBubble){
|
678
721
|
var form = $(e.target).jProp('form');
|
679
|
-
if(form.is(
|
722
|
+
if(form.is(iVal.sel)){
|
680
723
|
e.preventDefault();
|
681
|
-
if(
|
682
|
-
webshims.validityAlert.showFor( e.target, false, false,
|
724
|
+
if(iVal.handleBubble != 'none'){
|
725
|
+
webshims.validityAlert.showFor( e.target, false, false, iVal.handleBubble == 'hide' );
|
683
726
|
}
|
684
727
|
}
|
685
728
|
}
|
686
729
|
},
|
687
730
|
submit: function(e){
|
688
|
-
if(
|
731
|
+
if(iVal.sel && iVal.submitCheck &&$(e.target).is(iVal.sel) && $.prop(e.target, 'noValidate') && !$(e.target).checkValidity()){
|
689
732
|
e.stopImmediatePropagation();
|
690
733
|
return false;
|
691
734
|
}
|
@@ -695,15 +738,18 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
695
738
|
|
696
739
|
webshims.modules["form-core"].getGroupElements = getGroupElements;
|
697
740
|
|
741
|
+
if(/[\s\:\>\~\+]/.test(iVal.sel || '')){
|
742
|
+
webshims.error('please use a simple selector for iVal.sel: for example .validate');
|
743
|
+
}
|
698
744
|
|
699
745
|
if(options.replaceValidationUI){
|
700
|
-
|
701
|
-
|
702
|
-
|
703
|
-
|
746
|
+
$(document).on('firstinvalid', function(e){
|
747
|
+
if(!e.isInvalidUIPrevented()){
|
748
|
+
e.preventDefault();
|
749
|
+
setTimeout(function(){
|
704
750
|
webshims.validityAlert.showFor( e.target );
|
705
|
-
}
|
706
|
-
}
|
751
|
+
}, 4);
|
752
|
+
}
|
707
753
|
});
|
708
754
|
}
|
709
755
|
|
@@ -747,29 +793,6 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
747
793
|
});
|
748
794
|
})();
|
749
795
|
|
750
|
-
//see: https://bugs.webkit.org/show_bug.cgi?id=113377
|
751
|
-
if (chromeBugs && webkitVersion < 540) {
|
752
|
-
(function(){
|
753
|
-
var elems = /^(?:textarea|input)$/i;
|
754
|
-
var form = false;
|
755
|
-
|
756
|
-
document.addEventListener('contextmenu', function(e){
|
757
|
-
if (elems.test(e.target.nodeName || '') && (form = e.target.form)) {
|
758
|
-
setTimeout(function(){
|
759
|
-
form = false;
|
760
|
-
}, 1);
|
761
|
-
}
|
762
|
-
}, false);
|
763
|
-
|
764
|
-
$(window).on('invalid', function(e){
|
765
|
-
if (e.originalEvent && form && form == e.target.form) {
|
766
|
-
e.wrongWebkitInvalid = true;
|
767
|
-
e.stopImmediatePropagation();
|
768
|
-
}
|
769
|
-
});
|
770
|
-
|
771
|
-
})();
|
772
|
-
}
|
773
796
|
|
774
797
|
if(!$.event.special.change && !$.event.special.input && Modernizr.inputtypes && options.fixRangeChange){
|
775
798
|
var rangeChange = {
|
@@ -907,4 +930,16 @@ webshims.register('form-validation', function($, webshims, window, document, und
|
|
907
930
|
}
|
908
931
|
});
|
909
932
|
}
|
933
|
+
|
934
|
+
addModule('form-combat', {
|
935
|
+
d: ['dom-support'],
|
936
|
+
test: ! (($.mobile && ($.mobile.selectmenu || $.mobile.checkboxradio)) || $.fn.select2 || $.fn.chosen || $.fn.selectpicker || $.fn.selectBoxIt)
|
937
|
+
});
|
938
|
+
|
939
|
+
addModule('position', {
|
940
|
+
src: 'plugins/jquery.ui.position.js',
|
941
|
+
test:!! ($.position && $.position.getScrollInfo)
|
942
|
+
});
|
943
|
+
|
944
|
+
loader.loadList(['form-combat', 'position']);
|
910
945
|
});
|
@@ -49,15 +49,29 @@ webshims.register('form-validators', function($, webshims, window, document, und
|
|
49
49
|
var message = '';
|
50
50
|
var setMessage = function(message, errorType){
|
51
51
|
blockCustom = true;
|
52
|
-
data.customMismatchedRule = message ? errorType : '';
|
53
52
|
|
54
|
-
if(typeof message != 'string'){
|
55
|
-
message = $(elem).data('errormessage') || elem.getAttribute('x-moz-errormessage') || webshims.customErrorMessages[errorType][webshims.activeLang()] || webshims.customErrorMessages[errorType][''];
|
56
|
-
}
|
57
53
|
|
58
|
-
if(
|
59
|
-
|
54
|
+
if(message){
|
55
|
+
data.customMismatchedRule = errorType;
|
56
|
+
|
57
|
+
if(typeof message != 'string'){
|
58
|
+
message = webshims.getContentValidationMessage(elem, false, errorType);
|
59
|
+
|
60
|
+
if(message && typeof message == 'object'){
|
61
|
+
message = message[errorType];
|
62
|
+
}
|
63
|
+
|
64
|
+
if(!message || typeof message != 'string'){
|
65
|
+
message = webshims.customErrorMessages[errorType][webshims.activeLang()] || webshims.customErrorMessages[errorType][''] || message.customError || message.defaultMessage || '';
|
66
|
+
}
|
67
|
+
}
|
68
|
+
} else {
|
69
|
+
message = '';
|
70
|
+
data.customMismatchedRule = '';
|
60
71
|
}
|
72
|
+
|
73
|
+
|
74
|
+
|
61
75
|
$(elem).setCustomValidity(message);
|
62
76
|
blockCustom = false;
|
63
77
|
};
|
@@ -70,7 +84,7 @@ webshims.register('form-validators', function($, webshims, window, document, und
|
|
70
84
|
return false;
|
71
85
|
}
|
72
86
|
});
|
73
|
-
if(message != 'async'){
|
87
|
+
if(message != 'async' && (message || !validity.valid)){
|
74
88
|
setMessage(message, customMismatchedRule);
|
75
89
|
}
|
76
90
|
}
|
@@ -148,8 +162,8 @@ webshims.register('form-validators', function($, webshims, window, document, und
|
|
148
162
|
groupTimer[name] = setTimeout(function(){
|
149
163
|
checkboxes
|
150
164
|
.addClass('group-required')
|
151
|
-
.
|
152
|
-
.
|
165
|
+
.off('click.groupRequired')
|
166
|
+
.on('click.groupRequired', function(){
|
153
167
|
checkboxes.filter('.group-required').each(function(){
|
154
168
|
webshims.refreshCustomValidityRules(this);
|
155
169
|
});
|
@@ -314,7 +328,6 @@ webshims.register('form-validators', function($, webshims, window, document, und
|
|
314
328
|
remoteValidate.restartAjax = false;
|
315
329
|
},
|
316
330
|
getResponse: function(data){
|
317
|
-
var old = webshims.refreshCustomValidityRules;
|
318
331
|
if(!data){
|
319
332
|
data = {message: '', valid: true};
|
320
333
|
} else if(typeof data == 'string'){
|