formvalidation-rails 0.7.1 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -1
  3. data/lib/formvalidation-rails/version.rb +2 -2
  4. data/vendor/assets/javascripts/{formvalidation.js → formValidation.js} +148 -30
  5. data/vendor/assets/javascripts/formValidation.min.js +13 -0
  6. data/vendor/assets/javascripts/formvalidation/framework/bootstrap.js +2 -7
  7. data/vendor/assets/javascripts/formvalidation/framework/bootstrap.min.js +2 -2
  8. data/vendor/assets/javascripts/formvalidation/framework/bootstrap4.js +215 -0
  9. data/vendor/assets/javascripts/formvalidation/framework/bootstrap4.min.js +10 -0
  10. data/vendor/assets/javascripts/formvalidation/framework/foundation.js +36 -50
  11. data/vendor/assets/javascripts/formvalidation/framework/foundation.min.js +2 -2
  12. data/vendor/assets/javascripts/formvalidation/framework/foundation5.js +161 -0
  13. data/vendor/assets/javascripts/formvalidation/framework/foundation5.min.js +10 -0
  14. data/vendor/assets/javascripts/formvalidation/framework/pure.js +7 -6
  15. data/vendor/assets/javascripts/formvalidation/framework/pure.min.js +2 -2
  16. data/vendor/assets/javascripts/formvalidation/framework/semantic.js +4 -4
  17. data/vendor/assets/javascripts/formvalidation/framework/semantic.min.js +2 -2
  18. data/vendor/assets/javascripts/formvalidation/framework/uikit.js +2 -8
  19. data/vendor/assets/javascripts/formvalidation/framework/uikit.min.js +2 -2
  20. data/vendor/assets/javascripts/formvalidation/language/ar_MA.js +0 -0
  21. data/vendor/assets/javascripts/formvalidation/language/bg_BG.js +0 -0
  22. data/vendor/assets/javascripts/formvalidation/language/ca_ES.js +0 -0
  23. data/vendor/assets/javascripts/formvalidation/language/cs_CZ.js +0 -0
  24. data/vendor/assets/javascripts/formvalidation/language/da_DK.js +0 -0
  25. data/vendor/assets/javascripts/formvalidation/language/de_DE.js +0 -0
  26. data/vendor/assets/javascripts/formvalidation/language/el_GR.js +0 -0
  27. data/vendor/assets/javascripts/formvalidation/language/en_US.js +0 -0
  28. data/vendor/assets/javascripts/formvalidation/language/es_CL.js +0 -0
  29. data/vendor/assets/javascripts/formvalidation/language/es_ES.js +0 -0
  30. data/vendor/assets/javascripts/formvalidation/language/eu_ES.js +0 -0
  31. data/vendor/assets/javascripts/formvalidation/language/fa_IR.js +0 -0
  32. data/vendor/assets/javascripts/formvalidation/language/fi_FI.js +0 -0
  33. data/vendor/assets/javascripts/formvalidation/language/fr_BE.js +0 -0
  34. data/vendor/assets/javascripts/formvalidation/language/fr_FR.js +0 -0
  35. data/vendor/assets/javascripts/formvalidation/language/he_IL.js +0 -0
  36. data/vendor/assets/javascripts/formvalidation/language/hi_IN.js +0 -0
  37. data/vendor/assets/javascripts/formvalidation/language/hu_HU.js +0 -0
  38. data/vendor/assets/javascripts/formvalidation/language/id_ID.js +0 -0
  39. data/vendor/assets/javascripts/formvalidation/language/it_IT.js +0 -0
  40. data/vendor/assets/javascripts/formvalidation/language/ja_JP.js +0 -0
  41. data/vendor/assets/javascripts/formvalidation/language/nl_BE.js +0 -0
  42. data/vendor/assets/javascripts/formvalidation/language/nl_NL.js +0 -0
  43. data/vendor/assets/javascripts/formvalidation/language/no_NO.js +3 -3
  44. data/vendor/assets/javascripts/formvalidation/language/pl_PL.js +0 -0
  45. data/vendor/assets/javascripts/formvalidation/language/pt_BR.js +0 -0
  46. data/vendor/assets/javascripts/formvalidation/language/pt_PT.js +0 -0
  47. data/vendor/assets/javascripts/formvalidation/language/ro_RO.js +0 -0
  48. data/vendor/assets/javascripts/formvalidation/language/ru_RU.js +0 -0
  49. data/vendor/assets/javascripts/formvalidation/language/sk_SK.js +0 -0
  50. data/vendor/assets/javascripts/formvalidation/language/sq_AL.js +0 -0
  51. data/vendor/assets/javascripts/formvalidation/language/sr_RS.js +0 -0
  52. data/vendor/assets/javascripts/formvalidation/language/sv_SE.js +0 -0
  53. data/vendor/assets/javascripts/formvalidation/language/th_TH.js +0 -0
  54. data/vendor/assets/javascripts/formvalidation/language/tr_TR.js +0 -0
  55. data/vendor/assets/javascripts/formvalidation/language/ua_UA.js +0 -0
  56. data/vendor/assets/javascripts/formvalidation/language/vi_VN.js +0 -0
  57. data/vendor/assets/javascripts/formvalidation/language/zh_CN.js +0 -0
  58. data/vendor/assets/javascripts/formvalidation/language/zh_TW.js +0 -0
  59. data/vendor/assets/stylesheets/formValidation.css +299 -0
  60. data/vendor/assets/stylesheets/formValidation.min.css +9 -0
  61. metadata +10 -6
  62. data/vendor/assets/javascripts/formvalidation.min.js +0 -13
  63. data/vendor/assets/stylesheets/formvalidation.css +0 -169
  64. data/vendor/assets/stylesheets/formvalidation.min.css +0 -1
@@ -0,0 +1,10 @@
1
+ /*!
2
+ * FormValidation (http://formvalidation.io)
3
+ * The best jQuery plugin to validate form fields. Support Bootstrap, Foundation, Pure, SemanticUI, UIKit and custom frameworks
4
+ *
5
+ * @version v0.8.1, built on 2016-07-29 1:10:56 AM
6
+ * @author https://twitter.com/formvalidation
7
+ * @copyright (c) 2013 - 2016 Nguyen Huu Phuoc
8
+ * @license http://formvalidation.io/license/
9
+ */
10
+ !function(a){FormValidation.Framework.Bootstrap4=function(b,c,d){c=a.extend(!0,{button:{selector:'[type="submit"]:not([formnovalidate])',disabled:"disabled"},err:{clazz:"form-control-feedback",parent:"^(.*)(col|offset)-(xs|sm|md|lg)-[0-9]+(.*)$"},icon:{valid:null,invalid:null,validating:null,feedback:"fv-control-feedback"},row:{selector:".form-group",valid:"has-success",invalid:"has-warning",feedback:"fv-has-feedback"}},c),FormValidation.Base.apply(this,[b,c,d])},FormValidation.Framework.Bootstrap4.prototype=a.extend({},FormValidation.Base.prototype,{_fixIcon:function(a,b){var c=this._namespace,d=a.attr("type"),e=a.attr("data-"+c+"-field"),f=this.options.fields[e].row||this.options.row.selector,g=a.closest(f);if("checkbox"===d||"radio"===d){var h=a.parent();h.hasClass("form-check")?b.insertAfter(h):h.parent().hasClass("form-check")&&b.insertAfter(h.parent())}0!==g.find(".input-group").length&&b.addClass("fv-bootstrap-icon-input-group").insertAfter(g.find(".input-group").eq(0))},_createTooltip:function(a,b,c){var d=this._namespace,e=a.data(d+".icon");if(e)switch(c){case"popover":e.css({cursor:"pointer","pointer-events":"auto"}).popover("destroy").popover({container:"body",content:b,html:!0,placement:"top",trigger:"hover click"});break;case"tooltip":default:e.css({cursor:"pointer","pointer-events":"auto"}).tooltip("dispose").tooltip({container:"body",html:!0,placement:"top",title:b})}},_destroyTooltip:function(a,b){var c=this._namespace,d=a.data(c+".icon");if(d)switch(b){case"popover":d.css({cursor:"","pointer-events":"none"}).popover("destroy");break;case"tooltip":default:d.css({cursor:"","pointer-events":"none"}).tooltip("dispose")}},_hideTooltip:function(a,b){var c=this._namespace,d=a.data(c+".icon");if(d)switch(b){case"popover":d.popover("hide");break;case"tooltip":default:d.tooltip("hide")}},_showTooltip:function(a,b){var c=this._namespace,d=a.data(c+".icon");if(d)switch(b){case"popover":d.popover("show");break;case"tooltip":default:d.tooltip("show")}}})}(jQuery);
@@ -1,14 +1,14 @@
1
- /*!
1
+ /**
2
2
  * FormValidation (http://formvalidation.io)
3
3
  * The best jQuery plugin to validate form fields. Support Bootstrap, Foundation, Pure, SemanticUI, UIKit and custom frameworks
4
4
  *
5
- * @version v0.7.1, built on 2016-02-01 12:00:57 AM
6
5
  * @author https://twitter.com/formvalidation
7
6
  * @copyright (c) 2013 - 2016 Nguyen Huu Phuoc
8
7
  * @license http://formvalidation.io/license/
9
8
  */
9
+
10
10
  /**
11
- * This class supports validating Foundation form (http://foundation.zurb.com/)
11
+ * This class supports validating Foundation v6+ form (http://foundation.zurb.com/)
12
12
  */
13
13
  /* global Foundation: false */
14
14
  (function($) {
@@ -21,8 +21,8 @@
21
21
  disabled: 'disabled'
22
22
  },
23
23
  err: {
24
- // http://foundation.zurb.com/docs/components/forms.html#error-states
25
- clazz: 'error',
24
+ // http://foundation.zurb.com/sites/docs/abide.html
25
+ clazz: 'form-error',
26
26
  parent: '^.*((small|medium|large)-[0-9]+)\\s.*(columns).*$'
27
27
  },
28
28
  // Foundation doesn't support feedback icon
@@ -33,10 +33,9 @@
33
33
  feedback: 'fv-control-feedback'
34
34
  },
35
35
  row: {
36
- // http://foundation.zurb.com/docs/components/forms.html
37
36
  selector: '.row',
38
37
  valid: 'fv-has-success',
39
- invalid: 'error',
38
+ invalid: 'fv-has-error',
40
39
  feedback: 'fv-has-feedback'
41
40
  }
42
41
  }, options);
@@ -55,8 +54,7 @@
55
54
  var ns = this._namespace,
56
55
  type = $field.attr('type'),
57
56
  field = $field.attr('data-' + ns + '-field'),
58
- row = this.options.fields[field].row || this.options.row.selector,
59
- $parent = $field.closest(row);
57
+ row = this.options.fields[field].row || this.options.row.selector;
60
58
 
61
59
  if ('checkbox' === type || 'radio' === type) {
62
60
  var $next = $icon.next();
@@ -64,39 +62,31 @@
64
62
  $icon.insertAfter($next);
65
63
  }
66
64
  }
67
-
68
- if ($parent.find('label').length === 0) {
69
- $icon.addClass('fv-icon-no-label');
70
- }
71
65
  },
72
66
 
73
67
  /**
74
68
  * Create a tooltip or popover
75
69
  * It will be shown when focusing on the field
76
70
  *
71
+ * @see http://foundation.zurb.com/sites/docs/tooltip.html
77
72
  * @param {jQuery} $field The field element
78
73
  * @param {String} message The message
79
74
  * @param {String} type Can be 'tooltip' or 'popover'
80
75
  */
81
76
  _createTooltip: function($field, message, type) {
82
- var that = this,
83
- $icon = $field.data('fv.icon');
77
+ var $icon = $field.data('fv.icon');
84
78
  if ($icon) {
85
- $icon
86
- .attr('title', message)
87
- .css({
88
- 'cursor': 'pointer'
89
- })
90
- .off('mouseenter.container.fv focusin.container.fv')
91
- .on('mouseenter.container.fv', function() {
92
- that._showTooltip($field, type);
93
- })
94
- .off('mouseleave.container.fv focusout.container.fv')
95
- .on('mouseleave.container.fv focusout.container.fv', function() {
96
- that._hideTooltip($field, type);
97
- });
98
- Foundation.libs.tooltip.create($icon);
99
- $icon.data('fv.foundation.tooltip', $icon);
79
+ var tooltip = $icon.data('fv.foundation.tooltip');
80
+ if (tooltip) {
81
+ tooltip.destroy();
82
+ }
83
+
84
+ $icon.css('cursor', 'pointer')
85
+ .off('.zf.tooltip')
86
+ .data('fv.foundation.tooltip', new Foundation.Tooltip($icon, {
87
+ templateClasses: 'fv-foundation-tooltip',
88
+ tipText: message
89
+ }));
100
90
  }
101
91
  },
102
92
 
@@ -109,14 +99,14 @@
109
99
  _destroyTooltip: function($field, type) {
110
100
  var $icon = $field.data('fv.icon');
111
101
  if ($icon) {
112
- $icon.css({
113
- 'cursor': ''
114
- });
115
- var $tooltip = $icon.data('fv.foundation.tooltip');
116
- if ($tooltip) {
117
- // Foundation doesn't provide method to destroy particular tooltip instance
118
- $tooltip.off('.fndtn.tooltip');
119
- Foundation.libs.tooltip.hide($tooltip);
102
+ $icon.removeAttr('title')
103
+ .removeAttr('data-tooltip')
104
+ .css('cursor', '')
105
+ .off('.zf.tooltip');
106
+
107
+ var tooltip = $icon.data('fv.foundation.tooltip');
108
+ if (tooltip) {
109
+ tooltip.destroy();
120
110
  $icon.removeData('fv.foundation.tooltip');
121
111
  }
122
112
  }
@@ -131,12 +121,10 @@
131
121
  _hideTooltip: function($field, type) {
132
122
  var $icon = $field.data('fv.icon');
133
123
  if ($icon) {
134
- $icon.css({
135
- 'cursor': ''
136
- });
137
- var $tooltip = $icon.data('fv.foundation.tooltip');
138
- if ($tooltip) {
139
- Foundation.libs.tooltip.hide($tooltip);
124
+ $icon.css('cursor', '');
125
+ var tooltip = $icon.data('fv.foundation.tooltip');
126
+ if (tooltip) {
127
+ tooltip.hide();
140
128
  }
141
129
  }
142
130
  },
@@ -150,12 +138,10 @@
150
138
  _showTooltip: function($field, type) {
151
139
  var $icon = $field.data('fv.icon');
152
140
  if ($icon) {
153
- var $tooltip = $icon.data('fv.foundation.tooltip');
154
- if ($tooltip) {
155
- $icon.css({
156
- 'cursor': 'pointer'
157
- });
158
- Foundation.libs.tooltip.show($tooltip);
141
+ $icon.css('cursor', 'pointer');
142
+ var tooltip = $icon.data('fv.foundation.tooltip');
143
+ if (tooltip) {
144
+ tooltip.show();
159
145
  }
160
146
  }
161
147
  }
@@ -2,9 +2,9 @@
2
2
  * FormValidation (http://formvalidation.io)
3
3
  * The best jQuery plugin to validate form fields. Support Bootstrap, Foundation, Pure, SemanticUI, UIKit and custom frameworks
4
4
  *
5
- * @version v0.7.1, built on 2016-02-01 12:00:58 AM
5
+ * @version v0.8.1, built on 2016-07-29 1:10:56 AM
6
6
  * @author https://twitter.com/formvalidation
7
7
  * @copyright (c) 2013 - 2016 Nguyen Huu Phuoc
8
8
  * @license http://formvalidation.io/license/
9
9
  */
10
- !function(a){FormValidation.Framework.Foundation=function(b,c){c=a.extend(!0,{button:{selector:'[type="submit"]:not([formnovalidate])',disabled:"disabled"},err:{clazz:"error",parent:"^.*((small|medium|large)-[0-9]+)\\s.*(columns).*$"},icon:{valid:null,invalid:null,validating:null,feedback:"fv-control-feedback"},row:{selector:".row",valid:"fv-has-success",invalid:"error",feedback:"fv-has-feedback"}},c),FormValidation.Base.apply(this,[b,c])},FormValidation.Framework.Foundation.prototype=a.extend({},FormValidation.Base.prototype,{_fixIcon:function(a,b){var c=this._namespace,d=a.attr("type"),e=a.attr("data-"+c+"-field"),f=this.options.fields[e].row||this.options.row.selector,g=a.closest(f);if("checkbox"===d||"radio"===d){var h=b.next();h.is("label")&&b.insertAfter(h)}0===g.find("label").length&&b.addClass("fv-icon-no-label")},_createTooltip:function(a,b,c){var d=this,e=a.data("fv.icon");e&&(e.attr("title",b).css({cursor:"pointer"}).off("mouseenter.container.fv focusin.container.fv").on("mouseenter.container.fv",function(){d._showTooltip(a,c)}).off("mouseleave.container.fv focusout.container.fv").on("mouseleave.container.fv focusout.container.fv",function(){d._hideTooltip(a,c)}),Foundation.libs.tooltip.create(e),e.data("fv.foundation.tooltip",e))},_destroyTooltip:function(a,b){var c=a.data("fv.icon");if(c){c.css({cursor:""});var d=c.data("fv.foundation.tooltip");d&&(d.off(".fndtn.tooltip"),Foundation.libs.tooltip.hide(d),c.removeData("fv.foundation.tooltip"))}},_hideTooltip:function(a,b){var c=a.data("fv.icon");if(c){c.css({cursor:""});var d=c.data("fv.foundation.tooltip");d&&Foundation.libs.tooltip.hide(d)}},_showTooltip:function(a,b){var c=a.data("fv.icon");if(c){var d=c.data("fv.foundation.tooltip");d&&(c.css({cursor:"pointer"}),Foundation.libs.tooltip.show(d))}}})}(jQuery);
10
+ !function(a){FormValidation.Framework.Foundation=function(b,c){c=a.extend(!0,{button:{selector:'[type="submit"]:not([formnovalidate])',disabled:"disabled"},err:{clazz:"form-error",parent:"^.*((small|medium|large)-[0-9]+)\\s.*(columns).*$"},icon:{valid:null,invalid:null,validating:null,feedback:"fv-control-feedback"},row:{selector:".row",valid:"fv-has-success",invalid:"fv-has-error",feedback:"fv-has-feedback"}},c),FormValidation.Base.apply(this,[b,c])},FormValidation.Framework.Foundation.prototype=a.extend({},FormValidation.Base.prototype,{_fixIcon:function(a,b){var c=this._namespace,d=a.attr("type"),e=a.attr("data-"+c+"-field");this.options.fields[e].row||this.options.row.selector;if("checkbox"===d||"radio"===d){var f=b.next();f.is("label")&&b.insertAfter(f)}},_createTooltip:function(a,b,c){var d=a.data("fv.icon");if(d){var e=d.data("fv.foundation.tooltip");e&&e.destroy(),d.css("cursor","pointer").off(".zf.tooltip").data("fv.foundation.tooltip",new Foundation.Tooltip(d,{templateClasses:"fv-foundation-tooltip",tipText:b}))}},_destroyTooltip:function(a,b){var c=a.data("fv.icon");if(c){c.removeAttr("title").removeAttr("data-tooltip").css("cursor","").off(".zf.tooltip");var d=c.data("fv.foundation.tooltip");d&&(d.destroy(),c.removeData("fv.foundation.tooltip"))}},_hideTooltip:function(a,b){var c=a.data("fv.icon");if(c){c.css("cursor","");var d=c.data("fv.foundation.tooltip");d&&d.hide()}},_showTooltip:function(a,b){var c=a.data("fv.icon");if(c){c.css("cursor","pointer");var d=c.data("fv.foundation.tooltip");d&&d.show()}}})}(jQuery);
@@ -0,0 +1,161 @@
1
+ /**
2
+ * FormValidation (http://formvalidation.io)
3
+ * The best jQuery plugin to validate form fields. Support Bootstrap, Foundation, Pure, SemanticUI, UIKit and custom frameworks
4
+ *
5
+ * @author https://twitter.com/formvalidation
6
+ * @copyright (c) 2013 - 2016 Nguyen Huu Phuoc
7
+ * @license http://formvalidation.io/license/
8
+ */
9
+
10
+ /**
11
+ * This class supports validating Foundation v5 form
12
+ * The latest supported version is Foundation v5.3.3
13
+ * @see http://foundation.zurb.com/sites/docs/v/5.5.3/
14
+ */
15
+ /* global Foundation: false */
16
+ (function($) {
17
+ FormValidation.Framework.Foundation5 = function(element, options) {
18
+ options = $.extend(true, {
19
+ button: {
20
+ selector: '[type="submit"]:not([formnovalidate])',
21
+ // The class for disabled button
22
+ // http://foundation.zurb.com/sites/docs/v/5.5.3/components/buttons.html
23
+ disabled: 'disabled'
24
+ },
25
+ err: {
26
+ // http://foundation.zurb.com/sites/docs/v/5.5.3/components/forms.html
27
+ clazz: 'error',
28
+ parent: '^.*((small|medium|large)-[0-9]+)\\s.*(columns).*$'
29
+ },
30
+ // Foundation doesn't support feedback icon
31
+ icon: {
32
+ valid: null,
33
+ invalid: null,
34
+ validating: null,
35
+ feedback: 'fv-control-feedback'
36
+ },
37
+ row: {
38
+ // http://foundation.zurb.com/sites/docs/v/5.5.3/components/forms.html
39
+ selector: '.row',
40
+ valid: 'fv-has-success',
41
+ invalid: 'error',
42
+ feedback: 'fv-has-feedback'
43
+ }
44
+ }, options);
45
+
46
+ FormValidation.Base.apply(this, [element, options]);
47
+ };
48
+
49
+ FormValidation.Framework.Foundation5.prototype = $.extend({}, FormValidation.Base.prototype, {
50
+ /**
51
+ * Specific framework might need to adjust the icon position
52
+ *
53
+ * @param {jQuery} $field The field element
54
+ * @param {jQuery} $icon The icon element
55
+ */
56
+ _fixIcon: function($field, $icon) {
57
+ var ns = this._namespace,
58
+ type = $field.attr('type'),
59
+ field = $field.attr('data-' + ns + '-field'),
60
+ row = this.options.fields[field].row || this.options.row.selector,
61
+ $parent = $field.closest(row);
62
+
63
+ if ('checkbox' === type || 'radio' === type) {
64
+ var $next = $icon.next();
65
+ if ($next.is('label')) {
66
+ $icon.insertAfter($next);
67
+ }
68
+ }
69
+ },
70
+
71
+ /**
72
+ * Create a tooltip or popover
73
+ * It will be shown when focusing on the field
74
+ *
75
+ * @param {jQuery} $field The field element
76
+ * @param {String} message The message
77
+ * @param {String} type Can be 'tooltip' or 'popover'
78
+ */
79
+ _createTooltip: function($field, message, type) {
80
+ var that = this,
81
+ $icon = $field.data('fv.icon');
82
+ if ($icon) {
83
+ $icon
84
+ .attr('title', message)
85
+ .css({
86
+ 'cursor': 'pointer'
87
+ })
88
+ .off('mouseenter.container.fv focusin.container.fv')
89
+ .on('mouseenter.container.fv', function() {
90
+ that._showTooltip($field, type);
91
+ })
92
+ .off('mouseleave.container.fv focusout.container.fv')
93
+ .on('mouseleave.container.fv focusout.container.fv', function() {
94
+ that._hideTooltip($field, type);
95
+ });
96
+ Foundation.libs.tooltip.create($icon);
97
+ $icon.data('fv.foundation.tooltip', $icon);
98
+ }
99
+ },
100
+
101
+ /**
102
+ * Destroy the tooltip or popover
103
+ *
104
+ * @param {jQuery} $field The field element
105
+ * @param {String} type Can be 'tooltip' or 'popover'
106
+ */
107
+ _destroyTooltip: function($field, type) {
108
+ var $icon = $field.data('fv.icon');
109
+ if ($icon) {
110
+ $icon.css({
111
+ 'cursor': ''
112
+ });
113
+ var $tooltip = $icon.data('fv.foundation.tooltip');
114
+ if ($tooltip) {
115
+ // Foundation doesn't provide method to destroy particular tooltip instance
116
+ $tooltip.off('.fndtn.tooltip');
117
+ Foundation.libs.tooltip.hide($tooltip);
118
+ $icon.removeData('fv.foundation.tooltip');
119
+ }
120
+ }
121
+ },
122
+
123
+ /**
124
+ * Hide a tooltip or popover
125
+ *
126
+ * @param {jQuery} $field The field element
127
+ * @param {String} type Can be 'tooltip' or 'popover'
128
+ */
129
+ _hideTooltip: function($field, type) {
130
+ var $icon = $field.data('fv.icon');
131
+ if ($icon) {
132
+ $icon.css({
133
+ 'cursor': ''
134
+ });
135
+ var $tooltip = $icon.data('fv.foundation.tooltip');
136
+ if ($tooltip) {
137
+ Foundation.libs.tooltip.hide($tooltip);
138
+ }
139
+ }
140
+ },
141
+
142
+ /**
143
+ * Show a tooltip or popover
144
+ *
145
+ * @param {jQuery} $field The field element
146
+ * @param {String} type Can be 'tooltip' or 'popover'
147
+ */
148
+ _showTooltip: function($field, type) {
149
+ var $icon = $field.data('fv.icon');
150
+ if ($icon) {
151
+ var $tooltip = $icon.data('fv.foundation.tooltip');
152
+ if ($tooltip) {
153
+ $icon.css({
154
+ 'cursor': 'pointer'
155
+ });
156
+ Foundation.libs.tooltip.show($tooltip);
157
+ }
158
+ }
159
+ }
160
+ });
161
+ }(jQuery));
@@ -0,0 +1,10 @@
1
+ /*!
2
+ * FormValidation (http://formvalidation.io)
3
+ * The best jQuery plugin to validate form fields. Support Bootstrap, Foundation, Pure, SemanticUI, UIKit and custom frameworks
4
+ *
5
+ * @version v0.8.1, built on 2016-07-29 1:10:56 AM
6
+ * @author https://twitter.com/formvalidation
7
+ * @copyright (c) 2013 - 2016 Nguyen Huu Phuoc
8
+ * @license http://formvalidation.io/license/
9
+ */
10
+ !function(a){FormValidation.Framework.Foundation5=function(b,c){c=a.extend(!0,{button:{selector:'[type="submit"]:not([formnovalidate])',disabled:"disabled"},err:{clazz:"error",parent:"^.*((small|medium|large)-[0-9]+)\\s.*(columns).*$"},icon:{valid:null,invalid:null,validating:null,feedback:"fv-control-feedback"},row:{selector:".row",valid:"fv-has-success",invalid:"error",feedback:"fv-has-feedback"}},c),FormValidation.Base.apply(this,[b,c])},FormValidation.Framework.Foundation5.prototype=a.extend({},FormValidation.Base.prototype,{_fixIcon:function(a,b){var c=this._namespace,d=a.attr("type"),e=a.attr("data-"+c+"-field"),f=this.options.fields[e].row||this.options.row.selector;a.closest(f);if("checkbox"===d||"radio"===d){var g=b.next();g.is("label")&&b.insertAfter(g)}},_createTooltip:function(a,b,c){var d=this,e=a.data("fv.icon");e&&(e.attr("title",b).css({cursor:"pointer"}).off("mouseenter.container.fv focusin.container.fv").on("mouseenter.container.fv",function(){d._showTooltip(a,c)}).off("mouseleave.container.fv focusout.container.fv").on("mouseleave.container.fv focusout.container.fv",function(){d._hideTooltip(a,c)}),Foundation.libs.tooltip.create(e),e.data("fv.foundation.tooltip",e))},_destroyTooltip:function(a,b){var c=a.data("fv.icon");if(c){c.css({cursor:""});var d=c.data("fv.foundation.tooltip");d&&(d.off(".fndtn.tooltip"),Foundation.libs.tooltip.hide(d),c.removeData("fv.foundation.tooltip"))}},_hideTooltip:function(a,b){var c=a.data("fv.icon");if(c){c.css({cursor:""});var d=c.data("fv.foundation.tooltip");d&&Foundation.libs.tooltip.hide(d)}},_showTooltip:function(a,b){var c=a.data("fv.icon");if(c){var d=c.data("fv.foundation.tooltip");d&&(c.css({cursor:"pointer"}),Foundation.libs.tooltip.show(d))}}})}(jQuery);
@@ -1,12 +1,12 @@
1
- /*!
1
+ /**
2
2
  * FormValidation (http://formvalidation.io)
3
3
  * The best jQuery plugin to validate form fields. Support Bootstrap, Foundation, Pure, SemanticUI, UIKit and custom frameworks
4
4
  *
5
- * @version v0.7.1, built on 2016-02-01 12:00:57 AM
6
5
  * @author https://twitter.com/formvalidation
7
6
  * @copyright (c) 2013 - 2016 Nguyen Huu Phuoc
8
7
  * @license http://formvalidation.io/license/
9
8
  */
9
+
10
10
  /**
11
11
  * This class supports validating Pure framework (http://purecss.io/)
12
12
  */
@@ -53,11 +53,12 @@
53
53
  var ns = this._namespace,
54
54
  type = $field.attr('type'),
55
55
  field = $field.attr('data-' + ns + '-field'),
56
- row = this.options.fields[field].row || this.options.row.selector,
57
- $parent = $field.closest(row);
56
+ $parent = $field.parent();
58
57
 
59
- if ($parent.find('label').length === 0) {
60
- $icon.addClass('fv-icon-no-label');
58
+ if ('checkbox' === type || 'radio' === type) {
59
+ if ($parent.is('label')) {
60
+ $icon.insertAfter($parent);
61
+ }
61
62
  }
62
63
  }
63
64
  });
@@ -2,9 +2,9 @@
2
2
  * FormValidation (http://formvalidation.io)
3
3
  * The best jQuery plugin to validate form fields. Support Bootstrap, Foundation, Pure, SemanticUI, UIKit and custom frameworks
4
4
  *
5
- * @version v0.7.1, built on 2016-02-01 12:00:58 AM
5
+ * @version v0.8.1, built on 2016-07-29 1:10:56 AM
6
6
  * @author https://twitter.com/formvalidation
7
7
  * @copyright (c) 2013 - 2016 Nguyen Huu Phuoc
8
8
  * @license http://formvalidation.io/license/
9
9
  */
10
- !function(a){FormValidation.Framework.Pure=function(b,c){c=a.extend(!0,{button:{selector:'[type="submit"]:not([formnovalidate])',disabled:"pure-button-disabled"},err:{clazz:"fv-help-block",parent:"^.*pure-control-group.*$"},icon:{valid:null,invalid:null,validating:null,feedback:"fv-control-feedback"},row:{selector:".pure-control-group",valid:"fv-has-success",invalid:"fv-has-error",feedback:"fv-has-feedback"}},c),FormValidation.Base.apply(this,[b,c])},FormValidation.Framework.Pure.prototype=a.extend({},FormValidation.Base.prototype,{_fixIcon:function(a,b){var c=this._namespace,d=(a.attr("type"),a.attr("data-"+c+"-field")),e=this.options.fields[d].row||this.options.row.selector,f=a.closest(e);0===f.find("label").length&&b.addClass("fv-icon-no-label")}})}(jQuery);
10
+ !function(a){FormValidation.Framework.Pure=function(b,c){c=a.extend(!0,{button:{selector:'[type="submit"]:not([formnovalidate])',disabled:"pure-button-disabled"},err:{clazz:"fv-help-block",parent:"^.*pure-control-group.*$"},icon:{valid:null,invalid:null,validating:null,feedback:"fv-control-feedback"},row:{selector:".pure-control-group",valid:"fv-has-success",invalid:"fv-has-error",feedback:"fv-has-feedback"}},c),FormValidation.Base.apply(this,[b,c])},FormValidation.Framework.Pure.prototype=a.extend({},FormValidation.Base.prototype,{_fixIcon:function(a,b){var c=this._namespace,d=a.attr("type"),e=(a.attr("data-"+c+"-field"),a.parent());("checkbox"===d||"radio"===d)&&e.is("label")&&b.insertAfter(e)}})}(jQuery);
@@ -1,12 +1,12 @@
1
- /*!
1
+ /**
2
2
  * FormValidation (http://formvalidation.io)
3
3
  * The best jQuery plugin to validate form fields. Support Bootstrap, Foundation, Pure, SemanticUI, UIKit and custom frameworks
4
4
  *
5
- * @version v0.7.1, built on 2016-02-01 12:00:57 AM
6
5
  * @author https://twitter.com/formvalidation
7
6
  * @copyright (c) 2013 - 2016 Nguyen Huu Phuoc
8
7
  * @license http://formvalidation.io/license/
9
8
  */
9
+
10
10
  /**
11
11
  * This class supports validating SemanticUI form (http://semantic-ui.com/)
12
12
  */
@@ -25,7 +25,7 @@
25
25
  },
26
26
  err: {
27
27
  // http://semantic-ui.com/elements/label.html#pointing
28
- clazz: 'ui red pointing label transition',
28
+ clazz: 'ui red pointing label',
29
29
  parent: '^.*(field|column).*$'
30
30
  },
31
31
  // When using feedback icon, the input must place inside 'ui input icon' element
@@ -42,7 +42,7 @@
42
42
  },
43
43
  row: {
44
44
  // http://semantic-ui.com/collections/form.html
45
- selector: '.field',
45
+ selector: '.fields',
46
46
  valid: 'fv-has-success',
47
47
  invalid: 'error',
48
48
  feedback: 'fv-has-feedback'
@@ -2,9 +2,9 @@
2
2
  * FormValidation (http://formvalidation.io)
3
3
  * The best jQuery plugin to validate form fields. Support Bootstrap, Foundation, Pure, SemanticUI, UIKit and custom frameworks
4
4
  *
5
- * @version v0.7.1, built on 2016-02-01 12:00:58 AM
5
+ * @version v0.8.1, built on 2016-07-29 1:10:56 AM
6
6
  * @author https://twitter.com/formvalidation
7
7
  * @copyright (c) 2013 - 2016 Nguyen Huu Phuoc
8
8
  * @license http://formvalidation.io/license/
9
9
  */
10
- !function(a){FormValidation.Framework.Semantic=function(b,c){c=a.extend(!0,{button:{selector:'[type="submit"]:not([formnovalidate])',disabled:"disabled"},control:{valid:"",invalid:""},err:{clazz:"ui red pointing label transition",parent:"^.*(field|column).*$"},icon:{valid:null,invalid:null,validating:null,feedback:"fv-control-feedback"},row:{selector:".field",valid:"fv-has-success",invalid:"error",feedback:"fv-has-feedback"}},c),FormValidation.Base.apply(this,[b,c])},FormValidation.Framework.Semantic.prototype=a.extend({},FormValidation.Base.prototype,{_fixIcon:function(a,b){var c=a.attr("type");if("checkbox"===c||"radio"===c){var d=a.parent();d.hasClass(c)&&b.insertAfter(d)}},_createTooltip:function(a,b,c){var d=a.data("fv.icon");if(d)switch(d.popup("exists")&&d.popup("remove popup").popup("destroy"),c){case"popover":d.css({cursor:"pointer"}).popup({content:b,position:"top center"});break;case"tooltip":default:d.css({cursor:"pointer"}).popup({content:b,position:"top center",variation:"inverted"})}},_destroyTooltip:function(a,b){var c=a.data("fv.icon");c&&c.popup("exists")&&c.css({cursor:""}).popup("remove popup").popup("destroy")},_hideTooltip:function(a,b){var c=a.data("fv.icon");c&&c.popup("hide")},_showTooltip:function(a,b){var c=a.data("fv.icon");c&&c.popup("show")}})}(jQuery);
10
+ !function(a){FormValidation.Framework.Semantic=function(b,c){c=a.extend(!0,{button:{selector:'[type="submit"]:not([formnovalidate])',disabled:"disabled"},control:{valid:"",invalid:""},err:{clazz:"ui red pointing label",parent:"^.*(field|column).*$"},icon:{valid:null,invalid:null,validating:null,feedback:"fv-control-feedback"},row:{selector:".fields",valid:"fv-has-success",invalid:"error",feedback:"fv-has-feedback"}},c),FormValidation.Base.apply(this,[b,c])},FormValidation.Framework.Semantic.prototype=a.extend({},FormValidation.Base.prototype,{_fixIcon:function(a,b){var c=a.attr("type");if("checkbox"===c||"radio"===c){var d=a.parent();d.hasClass(c)&&b.insertAfter(d)}},_createTooltip:function(a,b,c){var d=a.data("fv.icon");if(d)switch(d.popup("exists")&&d.popup("remove popup").popup("destroy"),c){case"popover":d.css({cursor:"pointer"}).popup({content:b,position:"top center"});break;case"tooltip":default:d.css({cursor:"pointer"}).popup({content:b,position:"top center",variation:"inverted"})}},_destroyTooltip:function(a,b){var c=a.data("fv.icon");c&&c.popup("exists")&&c.css({cursor:""}).popup("remove popup").popup("destroy")},_hideTooltip:function(a,b){var c=a.data("fv.icon");c&&c.popup("hide")},_showTooltip:function(a,b){var c=a.data("fv.icon");c&&c.popup("show")}})}(jQuery);
@@ -1,12 +1,12 @@
1
- /*!
1
+ /**
2
2
  * FormValidation (http://formvalidation.io)
3
3
  * The best jQuery plugin to validate form fields. Support Bootstrap, Foundation, Pure, SemanticUI, UIKit and custom frameworks
4
4
  *
5
- * @version v0.7.1, built on 2016-02-01 12:00:57 AM
6
5
  * @author https://twitter.com/formvalidation
7
6
  * @copyright (c) 2013 - 2016 Nguyen Huu Phuoc
8
7
  * @license http://formvalidation.io/license/
9
8
  */
9
+
10
10
  /**
11
11
  * This class supports validating UIKit form (http://getuikit.com/)
12
12
  */
@@ -58,8 +58,6 @@
58
58
  var ns = this._namespace,
59
59
  type = $field.attr('type'),
60
60
  field = $field.attr('data-' + ns + '-field'),
61
- row = this.options.fields[field].row || this.options.row.selector,
62
- $row = $field.closest(row),
63
61
  $parent = $field.parent();
64
62
 
65
63
  if ('checkbox' === type || 'radio' === type) {
@@ -68,10 +66,6 @@
68
66
  }
69
67
  }
70
68
 
71
- if ($row.find('label').length === 0) {
72
- $icon.addClass('fv-icon-no-label');
73
- }
74
-
75
69
  // Support UIKit form-password component
76
70
  // http://getuikit.com/docs/form-password.html
77
71
  if ($parent.hasClass('uk-form-password')) {