浏览代码

Merge pull request #1014 from jazzzz/fix-field-validation

Fixed isValidField and validateField for fields without validators
Phuoc Nguyen 11 年之前
父节点
当前提交
9a4f95bf81
共有 2 个文件被更改,包括 21 次插入2 次删除
  1. 2 2
      src/js/bootstrapValidator.js
  2. 19 0
      test/spec/api.js

+ 2 - 2
src/js/bootstrapValidator.js

@@ -839,7 +839,7 @@ if (typeof jQuery === 'undefined') {
                     break;
             }
 
-            if (fields.length === 0 || (this.options.fields[field] && this.options.fields[field].enabled === false)) {
+            if (fields.length === 0 || !this.options.fields[field] || this.options.fields[field].enabled === false) {
                 return this;
             }
 
@@ -1154,7 +1154,7 @@ if (typeof jQuery === 'undefined') {
                 default:
                     break;
             }
-            if (fields.length === 0 || this.options.fields[field] === null || this.options.fields[field].enabled === false) {
+            if (fields.length === 0 || !this.options.fields[field] || this.options.fields[field].enabled === false) {
                 return true;
             }
 

+ 19 - 0
test/spec/api.js

@@ -17,6 +17,9 @@ describe('api', function() {
                 '<div class="form-group">',
                     '<input type="text" name="email" data-bv-notempty data-bv-emailaddress />',
                 '</div>',
+                '<div class="form-group">',
+                    '<input type="text" name="note"/>',
+                '</div>',
             '</form>'
         ].join('\n')).appendTo('body');
 
@@ -24,6 +27,7 @@ describe('api', function() {
 
         this.bv     = $('#apiForm').data('bootstrapValidator');
         this.$email = this.bv.getFieldElements('email');
+        this.$note  = $('#apiForm').find('input[name="note"]');
     });
 
     afterEach(function() {
@@ -63,4 +67,19 @@ describe('api', function() {
         expect(this.bv.getOptions('username', 'stringLength', 'min')).toEqual('8');
         expect(this.bv.getOptions('username', 'stringlength', 'max')).toBeNull();
     });
+
+    it('isValidField()', function() {
+        this.$email.val('email@domain.com');
+        this.bv.validate();
+        expect(this.bv.isValidField(this.$note)).toBeTruthy();
+        expect(this.bv.isValidField(this.$email)).toBeTruthy();
+    });
+
+    it('validateField()', function() {
+        this.$email.val('email@domain.com');
+        this.bv.validateField(this.$email);
+        this.bv.validateField(this.$note);
+        expect(this.bv.isValidField(this.$email)).toBeTruthy();
+        expect(this.bv.isValidField(this.$note)).toBeTruthy();
+    });
 });