Browse Source

#121, #195: Add added.field.bv and removed.field.bv events

nghuuphuoc 11 years ago
parent
commit
2370550cde

+ 8 - 2
demo/dynamic.html

@@ -149,10 +149,16 @@
                 }
             })
             .on('error.field.bv', function(e, data) {
-                console.log(data.field, data.element, '-->error');
+                // console.log(data.field, data.element, '-->error');
             })
             .on('success.field.bv', function(e, data) {
-                console.log(data.field, data.element, '-->success');
+                // console.log(data.field, data.element, '-->success');
+            })
+            .on('added.field.bv', function(e, data) {
+                console.log('Added element:', data.field, data.element);
+            })
+            .on('removed.field.bv', function(e, data) {
+                console.log('Removed element:', data.field, data.element);
             });
     });
 </script>

+ 19 - 2
dist/js/bootstrapValidator.js

@@ -842,7 +842,7 @@
                     break;
             }
 
-            // Trigger the "status.field.bv" event
+            // Trigger an event
             this.$form.trigger($.Event('status.field.bv'), {
                 field: field,
                 element: $field,
@@ -1054,12 +1054,22 @@
 
             // Try to parse the options from HTML attributes
             var opts = this._parseOptions($field);
-            this.options.fields[field] = (opts == null) ? options : $.extend(true, opts, options);
+            opts = (opts == null) ? options : $.extend(true, options, opts);
+
+            this.options.fields[field] = $.extend(true, this.options.fields[field], opts);
 
             // Init the element
             this._initFieldElement($field);
 
             this.disableSubmitButtons(false);
+
+            // Trigger an event
+            this.$form.trigger($.Event('added.field.bv'), {
+                field: field,
+                element: $field,
+                options: this.options.fields[field]
+            });
+
             return this;
         },
 
@@ -1092,6 +1102,13 @@
             }
 
             this.disableSubmitButtons(false);
+
+            // Trigger an event
+            this.$form.trigger($.Event('removed.field.bv'), {
+                field: field,
+                element: $field
+            });
+
             return this;
         },
 

File diff suppressed because it is too large
+ 2 - 2
dist/js/bootstrapValidator.min.js


+ 19 - 2
src/js/bootstrapValidator.js

@@ -841,7 +841,7 @@
                     break;
             }
 
-            // Trigger the "status.field.bv" event
+            // Trigger an event
             this.$form.trigger($.Event('status.field.bv'), {
                 field: field,
                 element: $field,
@@ -1053,12 +1053,22 @@
 
             // Try to parse the options from HTML attributes
             var opts = this._parseOptions($field);
-            this.options.fields[field] = (opts == null) ? options : $.extend(true, opts, options);
+            opts = (opts == null) ? options : $.extend(true, options, opts);
+
+            this.options.fields[field] = $.extend(true, this.options.fields[field], opts);
 
             // Init the element
             this._initFieldElement($field);
 
             this.disableSubmitButtons(false);
+
+            // Trigger an event
+            this.$form.trigger($.Event('added.field.bv'), {
+                field: field,
+                element: $field,
+                options: this.options.fields[field]
+            });
+
             return this;
         },
 
@@ -1091,6 +1101,13 @@
             }
 
             this.disableSubmitButtons(false);
+
+            // Trigger an event
+            this.$form.trigger($.Event('removed.field.bv'), {
+                field: field,
+                element: $field
+            });
+
             return this;
         },