Mam pole input
z type="time"
. Jak sprawić, by to pole akceptowało tylko bieżący lub przyszły czas?Jak zaakceptować tylko przyszły lub aktualny czas w typie wejściowym = "czas"?
Jeśli użytkownik wprowadzi niewłaściwy czas, powinien zostać wyświetlony komunikat z prośbą o ponowne wprowadzenie czasu. Przyszłość oznacza tutaj upto 2 dni.
Tutaj właśnie wyświetlam aktualny czas za pomocą jquery.
function validDate(){
var today = new Date().toISOString().split('T')[0];
document.getElementsByName("date")[0].setAttribute('min', today);
}
$(function() {
$('input[type="time"][value="now"]').each(function() {
var d = new Date(),
h = d.getHours(),
m = d.getMinutes();
if (h < 10) h = '0' + h;
if (m < 10) m = '0' + m;
$(this).attr({
'value': h + ':' + m
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body onload="validDate()">
<div class="form-group">
<p>Date<span>*</span></p>
<input type="date" name="date" id="date" class="form-control input-sm " required />
</div>
<div>
<p>Time <span>*</span></p>
<input type="time" value="now" name="time" id="time" class="form-control input-sm " required />
</div>
</body>
W jaki sposób powinieneś to sprawdzić, jeśli wartość czasu może wynosić nawet dwa dni w przyszłości? Jeśli wprowadzę "00: 01", to jak powinieneś wiedzieć, czy mam na myśli północ, która dziś minęła, czy jutro północ? Twoja logika tutaj do sprawdzania poprawności jest wadliwa. –
Czy wiesz, że '$ (document) .ready (function() {});' and '$ (function() {});' to to samo? Więc w zasadzie robisz '$ (document) .ready (function() {$ (document) .ready (function() {});});'. Wiem, że to nie jest związane z twoim pytaniem, ale zauważyłem to w twoim kodzie, więc musiałem skomentować to :) – vi5ion
https://stackoverflow.com/questions/21499843/javascript-validate-date-input-soits -jeśli-albo-bieżący-albo-przyszły –