【问题标题】:JavaScript validating datetime-local from formJavaScript 从表单验证 datetime-local
【发布时间】:2016-10-12 17:38:06
【问题描述】:

我有一个允许预订出租车的 html 表单,但它不应该允许及时预订!所以时间必须是当前的或将来的。

这是表格,我使用 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>

如何让它检查是当前时间还是未来时间? (基本上禁用过去的条目)。

【问题讨论】:

    标签: javascript datetime


    【解决方案1】:

    您应该使用 jquery 或引导日历。它非常适合这种情况。用户也可以通过这种方式轻松获取日期。

    您在此类日历中拥有所有配置选项,例如分配文化、日期格式、mindate、maxdate 等。

    还要记住从服务器中选择日期并在 javascript 中将其设置为 mindate,因为客户端计算机上的日期时间可能是错误的。

    【讨论】:

      【解决方案2】:

      请使用input type = "date" 而不是日期时间。浏览器可能不再支持。

      Please refer this link

      现在设置min日期你cn使用以下sn-p

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

      DEMO

      【讨论】:

        【解决方案3】:

        您可以通过&gt;&lt; 来比较日期。但请确保日期在同一时区。

        var dateTimeStr = document.getElementById("dateTime").value;
        
        var dateTime = convertDateToUTC(new Date(dateTimeStr));
        var now = new Date();
        
        if (isNaN(date.getTime()) || date <= now) {
          booking.dateTime.focus();
          document.getElementById("dateMessage").innerHTML = "Please select a date AND time in the future, thankyou.";
          return valid = false;
        } else {
          document.getElementById("destinationMessage").innerHTML = "";
        }
        
        function convertDateToUTC(date) { 
            return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds()); 
        }
        

        JS Fiddle

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-07-27
          • 1970-01-01
          • 1970-01-01
          • 2015-12-04
          • 2014-11-20
          • 2012-04-15
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多