在两个时间段之间禁用提交按钮

时间:2017-11-10 05:08:12

标签: javascript jquery

我需要在上午10点25分到11点25分停用submit button。这是下面的提交按钮:

<input type="submit" id="submit" name="submit">

我正在使用这个脚本。但它无法正常工作。我无法找出问题所在:

<script>
 window.addEventListener("load", function(){
 var currentTime = new Date();
 var hours = currentTime.getHours();
 var minutes = currentTime.getMinutes();
 var t =currentTime.getHours()  + ":" + currentTime.getMinutes();

 var newButton = document.getElementById("submit");

 if(t >= 10:25 && t <= 11:25) {
   newButton.style.display = "none";
 }
 else {
   newButton.style.display = "block";
 }
 }, false);
</script>

4 个答案:

答案 0 :(得分:2)

根据您的代码,我假设您打算隐藏按钮而不是禁用它。

要纠正时间验证逻辑,您可以单独比较小时和分钟组件,而不是hh:mm字符串。

在下面的片段中,我将条件分为两部分:

  • 时间是10:25到10:59
  • 时间为11:00至11:25

此外,一旦您纠正了这个逻辑,您可能还会考虑每隔一秒(或一分钟)运行此功能,而不是仅仅在页面加载时运行。即使用户在10:25之前加载页面,这也将确保按钮被隐藏 - 因为该功能将在10:25运行并隐藏/禁用它。

&#13;
&#13;
window.addEventListener("load", function() {
  // Check time and update the button's state every second.
  setInterval(updateSubmitButtonState, 1000);
}, false);

function updateSubmitButtonState() {
  var currentTime = new Date();
  var hours = currentTime.getHours();
  var minutes = currentTime.getMinutes();
  var hours = currentTime.getHours();
  var minutes = currentTime.getMinutes();

  var newButton = document.getElementById("submit");
  
  // Between 10:25 and 10:59
  // or Between 11:00 and 11:25
  if ((hours == 10 && minutes >= 25) 
    || (hours == 11 && minutes <= 25)) {
    newButton.style.display = "none";
  } else {
    newButton.style.display = "block";
  }
}
&#13;
<input type="submit" id="submit" name="submit">
&#13;
&#13;
&#13;

答案 1 :(得分:1)

  1. 您可以使用条件!(t >= '10:25' && t <= '11:25' )的布尔值来设置按钮
  2. 的属性已禁用

    &#13;
    &#13;
     var currentTime = new Date();
     var hours = currentTime.getHours();
     var minutes = currentTime.getMinutes();
     var t =currentTime.getHours()  + ":" + currentTime.getMinutes();
    
     $("#submit").prop("disabled",!(t >= '10:25' && t <= '11:25' ))
    &#13;
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <input type="submit" id="submit" name="submit">
    &#13;
    &#13;
    &#13;

答案 2 :(得分:0)

$('#submit').prop('disabled', true);将停用按钮

答案 3 :(得分:0)

您使用的时间值是字符串类型变量,如果没有引号或双引号则无法使用。试试这个。

 var currentTime = new Date();
 var hours = currentTime.getHours();
 var minutes = currentTime.getMinutes();
 var t =currentTime.getHours()  + ":" + currentTime.getMinutes();

 var newButton = document.getElementById("submit");

 if(t >= '10:25' && t <= '11:25') {
   newButton.style.display = "none";
 }
 else {
   newButton.style.display = "block";
 }