Установите минимальное значение времени, если выбранная дата является текущей датой - PullRequest
0 голосов
/ 25 мая 2019

У меня есть два отдельных поля ввода типа date и type time. Пользователь не должен иметь возможность выбрать pickupDate и pickupTime, которые прошли (меньше текущего времени).

Я могу установить минимальную дату, чтобы пользователь не мог выбрать прошедшую дату, но у меня возникли проблемы с тем же минимальным значением pickupTime. В настоящее время, что он делает, это то, что, если я выбираю день заранее, например 26/05/2019, и текущее время - 15:30. Я не могу выбрать время до 14:30, 13:30 и т. Д., Поскольку минимальным является текущее время (не принимая во внимание, что дата находится в будущее). Как сделать так, чтобы только если выбрана текущая дата , тогда для pickupTime будет установлено минимальное значение (текущее время)?

booking.html

    <div class="pure-control-group">
        <label for="pickupDate">Pickup Date:</label>
        <input id="pickupDate" type="date" name="pickupDate" min="d" required>
    </div>
    <div class="pure-control-group">
        <label for="pickupTime">Pickup Time:</label>
        <input id="pickupTime" type="time" name="pickupTime" required>
    </div>


    <script>
        var d = new Date().toString("yyyy-MM-dd");
        var time = new Date().toString("HH:mm"); //changed from HH:mm
        document.getElementById("pickupDate").value = d;        
        document.getElementById("pickupTime").value = time;     
        pickupDate.min = d;

        if(pickupDate.value == d) {
            pickupTime.min = time;
        }
    </script>

Я ожидаю, если текущая дата 25/05/2019 14:00:
- Если выбранным pickupDate является 25/05/2019, pickupTime не может быть 1:00 PM
- Если выбранным pickupDate является 26/05/2019, pickupTime может быть 1:00 PM

Моя структура таблицы:

referenceNo VARCHAR(100)    
pickupDate  DATE
pickupTime  TIME

1 Ответ

0 голосов
/ 25 мая 2019

Я не совсем сделал то, что вы хотите, но привел пример того, что вы можете установить таймер в своем контроле времени, чтобы ограничить обратный вход.

display_c(); 

function display_c(){
  var refresh=1000; // Refresh rate in milli seconds
  mytime=setTimeout('display_ct()',refresh)
}

function display_ct() {
  var d = new Date();
  var m = d.getMinutes();
  var h = d.getHours();
  var s = d.getSeconds();
 
  if(h == '0') {h = 24;}
  //alert(h+":"+m +":" + s);
  var currentTime = h+":"+m +":" +s ; 

  document.getElementById('sct').innerHTML = currentTime;  
  document.getElementById('ct').value = currentTime;  
  display_c();
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!doctype html>
<html>
	
<head>
	<meta charset=utf-8>
	<title>Current Time Display</title>
</head>

<body>
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>

  <input type="time" id="ct">
  
  <span id='sct' ></span>
</body>

</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...