Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JAVASCRIPT验证表单中的日期_Javascript_Forms_Validation_Jsp_Date - Fatal编程技术网

JAVASCRIPT验证表单中的日期

JAVASCRIPT验证表单中的日期,javascript,forms,validation,jsp,date,Javascript,Forms,Validation,Jsp,Date,我尝试使用javascript验证输入的日期是否正确。例如,对于ETA(预计到达时间),日期应早于ETD(预计离开时间) 表格如下: <form> <label>ETA</label> <input id="etadate" name="etadate" type="date" /> <input name="etatime" type="time"/>

我尝试使用javascript验证输入的日期是否正确。例如,对于ETA(预计到达时间),日期应早于ETD(预计离开时间)

表格如下:

   <form>
      <label>ETA</label>
             <input  id="etadate" name="etadate" type="date" />
             <input name="etatime" type="time"/> 
      <label>ETD</label>
             <input  id="etddate" name="etddate" type="date"/>
             <input name="etddime" type="time"/>                                                                                        
   </form>

希腊字母表的第7个字母
ETD
对于javascript:

function validate1
 {
       var x = document.getElementById("etadate");
       var y = document.getElementById("etddate");

       if (x < y)
       {
          true;
       }
       else
       {
          false;
       }
}
函数验证1
{
var x=document.getElementById(“etadate”);
var y=document.getElementById(“etddate”);
if(x
当我试图运行代码时,它没有通知用户eta的日期应该早于etd。我不知道在哪里进行调整以使代码正确运行。

像这样使用-

function validate1
{
   var x = new Date(document.getElementById("etadate").value);
   var y = new Date(document.getElementById("etddate").value);

   return x<y;
}
函数验证1
{
var x=新日期(document.getElementById(“etadate”).value);
变量y=新日期(document.getElementById(“etddate”).value);
返回x像这样使用-

function validate1
{
   var x = new Date(document.getElementById("etadate").value);
   var y = new Date(document.getElementById("etddate").value);

   return x<y;
}
函数验证1
{
var x=新日期(document.getElementById(“etadate”).value);
变量y=新日期(document.getElementById(“etddate”).value);

返回x有几个问题:

var x = document.getElementById("etadate");
将返回对作为对象的输入元素的引用。不应使用<运算符比较对象。您需要:

var x = document.getElementById("etadate").value;
所以x现在是一个字符串

如果支持,浏览器应成功地将字符串解析为日期,因此您可以执行以下操作:

var x = new Date(document.getElementById("etadate").value);
但是,在某些浏览器中,返回的字符串是ISO 8601格式的字符串,如2016-05-23,将被解析为UTC,因此对于格林尼治标准时间以西的浏览器,返回的字符串似乎提前了一天。您需要处理这个问题

还有一些浏览器不支持输入类型date,还有一些关于这方面的问题

无论如何,您需要:

  • 获取每个输入的值
  • 检查它们是否生成有效的日期
  • 如果有,比较日期,例如:
  • 函数validate1(表单){
    var x=新日期(form.etadate.value);
    变量y=新日期(form.etddate.value);
    如果(isNaN(+x)| isNaN(+y)){
    警报(“其中一个日期无效”);
    返回false;
    }
    if(x
    
    希腊字母表的第7个字母
    ETD
    提交
    
    有几个问题:

    var x = document.getElementById("etadate");
    
    将返回对作为对象的输入元素的引用。不应使用<运算符比较对象。您需要:

    var x = document.getElementById("etadate").value;
    
    所以x现在是一个字符串

    如果支持,浏览器应成功地将字符串解析为日期,因此您可以执行以下操作:

    var x = new Date(document.getElementById("etadate").value);
    
    但是,在某些浏览器中,返回的字符串是ISO 8601格式的字符串,如2016-05-23,将被解析为UTC,因此对于格林尼治标准时间以西的浏览器,返回的字符串似乎提前了一天。您需要处理这个问题

    还有一些浏览器不支持输入类型date,还有一些关于这方面的问题

    无论如何,您需要:

  • 获取每个输入的值
  • 检查它们是否生成有效的日期
  • 如果有,比较日期,例如:
  • 函数validate1(表单){
    var x=新日期(form.etadate.value);
    变量y=新日期(form.etddate.value);
    如果(isNaN(+x)| isNaN(+y)){
    警报(“其中一个日期无效”);
    返回false;
    }
    if(x
    
    希腊字母表的第7个字母
    ETD
    提交
    
    我认为您的表单中有一个输入错误,因为它从来没有说“etddate”,但两个输入都是“etadate”注意getElementById返回一个元素引用,您需要元素的值,所以:
    var x=document.getElementById(“etadate”).value
    。您期望的实际值是什么?没有屏幕提示(并非所有浏览器都支持键入日期或键入时间)。您输入的是哪种格式的etadate?我认为您的表单中有一个输入错误,因为它从来没有说“etddate”,但两个输入都是“etadate”的。请注意,getElementById返回一个元素引用,您需要元素的值,所以:
    var x=document.getElementById(“etadate”).value
    。您期望的实际值是什么?没有屏幕提示(并非所有浏览器都支持键入日期或键入时间)。您输入的格式是什么?函数的if块(如果声明语法正确)可以
    返回函数的if块(如果声明语法正确)可以是
    返回x