Как открыть и закрыть реестр по времени - PullRequest
1 голос
/ 16 июня 2019

У меня есть веб-сайт для регистрации. Как использовать JavaScript для закрытия и открытия реестра по времени. Открыт с 08:00 до 16:00. Закрыть с 16:01 до 07:59 утра. Как использовать JavaScript для отключения всех элементов, таких как ввод, кнопка или все формы. Пожалуйста, помогите мне . Большое спасибо.

1 Ответ

3 голосов
/ 16 июня 2019

Вы можете включить этот код:

var disableOrEnableRegistry = function(disableAll){
  //assuming need to disable all buttons and input 
  var buttons =document.getElementsByTagName('button');
  var inputs =document.getElementsByTagName('input');
  for(button of buttons){
      button.disabled = disableAll;
  } 
  for(input of inputs){
    input.disabled = disableAll;
  }
}

var toggleEnablingRegistry=function(toggle, interval, chechTimeCallback){
  setTimeout(function() {  
      disableOrEnableRegistry(toggle);
      chechTimeCallback(chechTimeCallback);
  }, interval);
}

var checkTime = function(callback){
  var d = new Date(); 
  var hours = d.getHours();
  var minutes = d.getMinutes();
  var seconds = d.getSeconds();
  if(hours>16 || (hours === 16 && minutes > 0)){ //16:01-23:59
      disableOrEnableRegistry(true);
      var remainingHours=23-hours+7;
      var remainingMinutes=60-minutes;
      var remainingSeconds=60-seconds;
      var remainingTimeInMiliseconds=(remainingHours*3600+remainingMinutes*60+remainingSeconds)*1000;
      toggleEnablingRegistry(false, remainingTimeInMiliseconds, callback);
  }
  else if(hours<8){//00:00-7:59
      disableOrEnableRegistry(true);
      var remainingTimeInMiliseconds=(hours*3600+minutes*60+seconds)*1000;
      toggleEnablingRegistry(false, remainingTimeInMiliseconds, callback);
  }
  else{//8:00-16:00
      var remainingHours=23-hours+7;
      var remainingMinutes=60-minutes;
      var remainingSeconds=60-seconds;
      var remainingTimeInMiliseconds=(remainingHours*3600+remainingMinutes*60+remainingSeconds)*1000;
      toggleEnablingRegistry(true, remainingTimeInMiliseconds, callback);
  }
}
checkTime(checkTime);

Пояснение: функция «checkTime ()» определяет текущее время, следует ли отключить или включить реестр; Затем он отправляет в следующий раз, когда регистр должен быть включен или отключен путем вызова функции «toggleEnablingRegistry ()», которая после оставшегося времени снова вызывает функцию «checkTime ()».

...