Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JavaScript validating datetime-local from form

I have an html form which allows for a taxi booking, but it shouldn't allow bookings back in time! so the time must be current or in the future.

Here is the form, I use datetime-local.

/* Here is the JavaScript validation for the datetime-local. */

var dateTime = document.getElementById("dateTime").value;

if (dateTime == "" || dateTime == null) {
    booking.dateTime.focus();
    document.getElementById("dateMessage").innerHTML = "Please select a date AND time, thankyou.";
    return valid = false;
} else {
    document.getElementById("destinationMessage").innerHTML = "";
}
```
<form id="booking" action="">
    <div id="firstNameMessage" class="red"></div>
    <span class="red">*</span>First Name:
    <input type="text" name="firstName" id="firstName">
    <br>
    <div id="lastNameMessage" class="red"></div>
    <span class="red">*</span>Last Name:
    <input type="text" name="lastName" id="lastName">
    <br>
    <div id="numberMessage" class="red"></div>
    <span class="red">*</span>Contact Number:
    <input type="text" name="number" id="number">
    <br>

    <div id="unitMessage" class="red"></div>
    Unit Number(optional):
    <input type="text" name="unit" id="unit">
    <br>

    <div id="streetNumberMessage" class="red"></div>
    <span class="red">*</span>Street Number:
    <input type="text" name="streetNumber" id="streetNumber">
    <br>

    <div id="streetNameMessage" class="red"></div>
    <span class="red">*</span>Street Name:
    <input type="text" name="streetName" id="streetName">
    <br>

    <div id="pickupMessage" class="red"></div>
    <span class="red">*</span>Suburb:
    <input type="text" name="pickupSuburb" id="pickupSuburb">
    <br>

    <div id="destinationMessage" class="red"></div>
    Destination Suburb<span class="red">*</span>:
    <input type="text" name="destinationSuburb" id="destinationSuburb">
    <br>
    <div id="dateMessage" class="red"></div>
    Pick-Up Date and Time<span class="red">*</span>:
    <input type="datetime-local" name="dateTime" id="dateTime">
    <br>

    <br>
    <input type="button" value="Submit"
        onclick="getData('bookingprocess.php','message', firstName.value, lastName.value, number.value, unit.value, streetNumber.value, streetName.value, pickupSuburb.value, destinationSuburb.value, dateTime.value)" />
    <input type="reset" value="Reset">

</form>

How can I make it check for being the current time or in the future? (Basically disabling past entries).

like image 602
Jcode Avatar asked Sep 15 '25 10:09

Jcode


1 Answers

Please use input type = "date" instead of date-time. Probably no more supported by browsers.

Please refer this link

Now to set min date you cn use the following snippet

//Get today's date and split it by "T"
var today = new Date().toISOString().split('T')[0];
document.getElementById("dateTime").setAttribute('min', today);

DEMO

like image 179
brk Avatar answered Sep 18 '25 00:09

brk