如果输入日期大于今天,则抛出错误

时间:2014-11-02 16:18:14

标签: javascript html5 date

我的php / html页面中有一个输入日期字段。在我的日期字段中,如果输入日期大于今天(sysdate),我需要抛出一个错误。可能吗?如果是的话请帮助。 这是我的输入字段的html脚本。另一个JavaScript也根据字段的输入日期工作,以自动识别截止日期。

<div class="form-group">
<div class="input-group col-sm-4">
<div class="input-group-addon">Transaction Date&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i class="fa fa-calendar"></i></div>
<input id ="txndt" class="form-control" type="date" name ="purch_date" onblur = "txn40();" required />
</div>
</div>

3 个答案:

答案 0 :(得分:2)

它也适用于java脚本。我从我的'form'中调用了一个java脚本。这是解决方案。它正如我所期望的那样工作。

表格

<form  name="purchase" id ="purchase" method="post" action="" onsubmit="return checkform()">
    <div class="form-group">
        <div class="input-group col-sm-4">
            <div class="input-group-addon">Transaction Date&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i class="fa fa-calendar"></i></div>
                <input id ="txndt" class="form-control" type="date" max="<?php echo date("Y-m-d")?>" name ="purch_date" value="<?php echo $query2['purch_date'] ?>" onblur = "txn40();" required />
        </div>
    </div>
</form>

Java脚本

<script type="text/javascript">
    function checkform()
    {
    var dateString = document.purchase.txndt.value;
    var myDate = new Date(dateString);
    var today = new Date();
         if (document.purchase.txndt.value == "")
          { 
          //something is wrong
          alert('REQUIRED FIELD ERROR: Please enter date in field!')
          return false;
          }
          else if (myDate>today)
          { 
          //something else is wrong
            alert('You cannot enter a date in the future!')
            return false;
          }
          // if script gets this far through all of your fields
          // without problems, it's ok and you can submit the form
          return true;
    }
</script>

感谢大家的支持。

答案 1 :(得分:0)

您可以将valueAsDate属性与当前日期进行比较。

document.querySelector('#txndt').onchange = function() {
    if (this.valueAsDate > new Date) {
        alert("You can't pick a future date!")
    }
};

答案 2 :(得分:0)

使用&#39; max&#39;功能和&#39; php&#39;。在chorome浏览器中工作正常(支持HTML 5的浏览器)。使用以下内容更改输入。

<input id ="txndt" class="form-control" type="date" max="<?php echo date("Y-m-d")?>" name ="purch_date" onblur = "txn40();" required />