diff --git a/javascript/src/Form.js b/javascript/src/Form.js
index f0ceb013a9f2c50353ff954358dbf2ffc250bd40..640f7afa48d1a017a79884232fdce412e78f0834 100644
--- a/javascript/src/Form.js
+++ b/javascript/src/Form.js
@@ -118,12 +118,20 @@ var QfqNS = QfqNS || {};
      */
     n.Form.prototype.validate = function () {
         this.eventEmitter.emitEvent('form.validation.before', n.EventEmitter.makePayload(this, null));
+        var isValid;
+        var form = document.forms[this.formId];
+        var $form = $(form);
+
+        if ($form.data('bs.validator')) {
+            $form.validator('validate');
+            isValid = !$form.data('bs.validator').hasErrors();
+        } else {
+            isValid = form.checkValidity();
+        }
 
-        var result = document.forms[this.formId].checkValidity();
-
-        this.eventEmitter.emitEvent('form.validation.after', n.EventEmitter.makePayload(this, {validationResult: result}));
+        this.eventEmitter.emitEvent('form.validation.after', n.EventEmitter.makePayload(this, {validationResult: isValid}));
 
-        return result;
+        return isValid;
     };
 
     /**