diff --git a/javascript/src/Helper/NameSpaceFunctions.js b/javascript/src/Helper/NameSpaceFunctions.js
index e4fb0da622d2044a5d3394eea4fa93b4a9d8bb66..c4906e51c6c065d8e45a45b5835944d34d79a598 100644
--- a/javascript/src/Helper/NameSpaceFunctions.js
+++ b/javascript/src/Helper/NameSpaceFunctions.js
@@ -15,4 +15,32 @@ QfqNS.Helper = QfqNS.Helper || {};
             errorThrown, "error");
         alert.show();
     };
+
+    n.stringToBool = function (string) {
+        if (typeof string !== "string") {
+            return string;
+        }
+        var lowerCase = string.toLowerCase().trim();
+
+        switch (lowerCase) {
+            case "1":
+            case "yes":
+            case "y":
+            case "t":
+            case "true":
+            case "enabled":
+            case "enable":
+                return true;
+            case "0":
+            case "no":
+            case "n":
+            case "f":
+            case "false":
+            case "disabled":
+            case "enable":
+                return false;
+            default:
+                return false;
+        }
+    };
 })(QfqNS.Helper);
\ No newline at end of file
diff --git a/javascript/src/QfqForm.js b/javascript/src/QfqForm.js
index 50231abda1d267ff9b8982ba93e8a23ce25f6f53..0c95e9f2872a8dda27c2f9e0c394873327ae3fd6 100644
--- a/javascript/src/QfqForm.js
+++ b/javascript/src/QfqForm.js
@@ -69,10 +69,53 @@ var QfqNS = QfqNS || {};
             function (obj) {
                 n.Helper.showAjaxError(null, obj.textStatus, obj.errorThrown);
             });
+
+        var configurationData = this.readElementConfigurationData();
+
+        this.applyElementConfiguration(configurationData);
     };
 
     n.QfqForm.prototype.on = n.EventEmitter.onMixin;
 
+    /**
+     *
+     * @private
+     */
+    n.QfqForm.prototype.readElementConfigurationData = function () {
+        var $configuredElements = $("#" + this.formId + " [data-hidden],#" + this.formId + " [data-disabled]");
+
+        var configurationArray = [];
+        $configuredElements.each(function (index, element) {
+            try {
+                var $element = $(element);
+                if (!element.hasAttribute("name")) {
+                    n.Log.warning("Element has configuration data, but no name. Skipping");
+                    return;
+                }
+
+                var configuration = {};
+                configuration['form-element'] = $element.attr('name');
+
+                var hiddenVal = $element.data('hidden');
+                if (hiddenVal !== undefined) {
+                    configuration.hidden = n.Helper.stringToBool(hiddenVal);
+                }
+
+                var disabledVal = $element.data('disabled');
+                if (disabledVal !== undefined) {
+                    configuration.disabled = n.Helper.stringToBool(disabledVal);
+                }
+
+                configurationArray.push(configuration);
+            } catch (e) {
+                n.Log.error(e.message);
+            }
+        });
+
+        return configurationArray;
+
+    };
+
     /**
      * @public
      * @param bsTabs
diff --git a/mockup/elementconfiguration.html b/mockup/elementconfiguration.html
index fad1efb7fda9ea4b5869bd23f32e8a1902802591..6569d7db84788423ef69b30badd08bfa4934b1d6 100644
--- a/mockup/elementconfiguration.html
+++ b/mockup/elementconfiguration.html
@@ -89,7 +89,7 @@
             </div>
 
             <div class="col-md-6">
-                <input id="text" type="text" class="form-control" name="text">
+                <input id="text" type="text" class="form-control" name="text" data-disabled="true">
             </div>
 
         </div>
@@ -141,7 +141,7 @@
             <div class="col-md-6">
                 <div class="checkbox">
                     <label>
-                        <input type="checkbox" id="checkbox" name="checkbox">
+                        <input type="checkbox" id="checkbox" name="checkbox" data-hidden="no">
                     </label>
 
                     <p class="help-block"></p>