From d0f2b3b74cd8fb0507d9b491cfd04bc868c5a1f2 Mon Sep 17 00:00:00 2001 From: Gerome Matilla Date: Sat, 6 Jun 2020 18:16:34 +0800 Subject: [PATCH] disable inputs if hidden --- js/animate-dashboard.js | 22 +++++++++++++++++++++- js/web-menu.js | 21 +++++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/js/animate-dashboard.js b/js/animate-dashboard.js index 997a8a3..39ab4d0 100644 --- a/js/animate-dashboard.js +++ b/js/animate-dashboard.js @@ -3,12 +3,25 @@ var dashboardOverlay = document.getElementById("dashboardOverlay"); let rightDashboardVisibility = false; +// Disable/Enable inputs +var disableAllInputs = (status) => { + var elems = dashboard.getElementsByTagName('input'); + var len = elems.length; + + for (var i = 0; i < len; i++) { + elems[i].disabled = status; + } +} + const showDashboard = () => { dashboard.classList.add('showRightDashboard'); // Show overlay dashboardOverlay.classList.add('showDashboardOverlay'); + // Enable Inputs + disableAllInputs(false); + rightDashboardVisibility = !rightDashboardVisibility; } @@ -16,6 +29,9 @@ const hideDashboard = () => { dashboard.classList.remove('showRightDashboard'); dashboard.scrollTop = 0; + // Disable Inputs + disableAllInputs(true); + // Hide overlay dashboardOverlay.classList.remove('showDashboardOverlay'); @@ -73,4 +89,8 @@ dashboardOverlay.addEventListener( toggleDashboard(); } } -); \ No newline at end of file +); + + +// Disable dashboard inputs on startup +window.onload = disableAllInputs(true); \ No newline at end of file diff --git a/js/web-menu.js b/js/web-menu.js index 7269201..351506d 100644 --- a/js/web-menu.js +++ b/js/web-menu.js @@ -8,6 +8,16 @@ let webMenuVisibility = false; let webItemFocus; let webListIndex = 0; +// Disable/Enable inputs +var disableAllInputs = (status) => { + var elems = webMenu.getElementsByTagName('input'); + var len = elems.length; + + for (var i = 0; i < len; i++) { + elems[i].disabled = status; + } +} + // Create mouse event for passed li const createCallback = (li, url) => { // Create a callback property for the passed li @@ -172,6 +182,10 @@ const getFirstItem = () => { const showWebMenu = () => { webMenu.classList.add('showWebMenu'); + + // Enable inputs + disableAllInputs(false); + webMenuVisibility = !webMenuVisibility; // Focus to input field @@ -198,6 +212,10 @@ const hideWebMenu = () => { getFirstItem(); webMenu.classList.remove('showWebMenu'); + + // Disable inputs + disableAllInputs(true); + webMenuVisibility = !webMenuVisibility; } @@ -347,6 +365,9 @@ webMenuSearchBox.onkeydown = (event) => { const initWebMenu = () => { populateWebMenu(); getFirstItem(); + + // Disable inputs + disableAllInputs(true); } // Initialize web menu