2014-11-02 48 views
-1

我在我的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> 
+0

您使用的是日历库吗? – jfriend00 2014-11-02 16:21:03

+0

你应该发布你的JavaScript。此外'日期'不是有效的输入类型 – DarkBee 2014-11-02 16:21:12

+3

@DarkBee [与HTML5一起获取](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input#Attributes)。 – Scimonster 2014-11-02 16:22:15

回答

2

它也适用于java脚本。我从我的'表单'中调用了一个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> 

感谢所有的支持。

0

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

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

我试图限制这在输入电平本身与最大功能。 (type =“date”max =“2014-11-02”)。有没有可能将max设置为sysdate? – 2014-11-02 16:40:53

+0

我不确定'max'与'type =“date”'一起工作。这基本上将最大值设置为当前日期,如果您在上面进行更改,则会发出错误。如果你愿意,你可以改变'alert'到'return false'来停止改变值。 – Scimonster 2014-11-02 16:42:36

+0

是的,它的最大工作。我做了这个:type =“date”max =“<?php echo date(”Y-m-d“)?>”。它按预期工作。 – 2014-11-02 16:52:31

0

使用'max'函数和'php'。在chorome浏览器(支持HTML 5的浏览器)中工作良好。用下面的输入改变了输入。

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