diff --git a/javascript/src/QfqForm.js b/javascript/src/QfqForm.js
index a11ff1eb7442a4c3aee4253a7ff2a6437650fb9b..5c6ef901ea99319fe545af58056f67043677c231 100644
--- a/javascript/src/QfqForm.js
+++ b/javascript/src/QfqForm.js
@@ -708,7 +708,14 @@ var QfqNS = QfqNS || {};
 
 
     n.QfqForm.prototype.clearAllValidationStates = function () {
+        // Reset any messages/states added by bootstrap-validator.
         this.form.$form.validator('reset');
+
+        // Reset any states added by a call to QfqForm#setValidationState()
+        $('.has-warning,.has-error,.has-success,.has-danger').removeClass("has-warning has-error has-success" +
+            " has-danger");
+
+        // Remove all messages received from server upon form submit.
         $('[data-qfq=validation-message]').remove();
     };