Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.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_Jquery_Html - Fatal编程技术网

验证输入日期的Javascript

验证输入日期的Javascript,javascript,jquery,html,Javascript,Jquery,Html,我是Javascript编程新手,我正在尝试验证从外部Javascript文件获取的日历片段输入到中的日期。我正在尝试验证日期,以检查用户是否输入了过去的日期。如果输入的日期是过去的日期,则我需要打印一条警告消息,以便在未来期间输入有效日期 我接受以下HTMLcode中的输入日期字段: <input size="12" id="inputField" name="inputField" autofocus="" type="date" oninput="return dateVa

我是
Javascript
编程新手,我正在尝试验证从外部
Javascript
文件获取的日历片段输入到
中的日期。我正在尝试验证日期,以检查用户是否输入了过去的日期。如果输入的日期是过去的日期,则我需要打印一条警告消息,以便在未来期间输入有效日期

我接受以下
HTML
code中的输入日期字段:

<input size="12" id="inputField" name="inputField"  autofocus="" type="date"     oninput="return dateValidate(inputField)"/>

验证输入日期的Javascript函数是:

<script type="text/javascript">
function dateValidate(inputField)
{

 var v2 = document.getElementById('inputField');
 var pickeddate = new Date(v2.Value);
 todayDate = new Date();
 if(pickeddate > todayDate){
    return true;
 } else {
    alert("Enter a valid Date");
 }
}

函数日期验证(inputField)
{
var v2=document.getElementById('inputField');
var pickeddate=新日期(v2.值);
todayDate=新日期();
如果(选择日期>今天日期){
返回true;
}否则{
警报(“输入有效日期”);
}
}

但是这个代码似乎不起作用。我希望在
字段中输入过去的日期并进行制表时运行此Javascript函数。我希望在字段中输入日期时进行验证,而不是在提交表单时进行验证。

由于代码中存在问题,因此无法运行,只需替换以下内容:

var pickeddate = new Date(v2.Value);
为此:

var pickeddate = new Date(v2.value);   // 'value' should be in lower case
因为它是不正确的,
pickeddate
始终是
未定义的
,代码不起作用。

您可以试试这个

HTML

<input size="12" id="inputField" name="inputField"  autofocus="" type="date"     onblur="return dateValidate(this)"/>

不是
未定义
,而是
日期
对象,其值为
NaN
在技术上是正确的。但是在比较中,这是一样的…为了得到时间戳,。我知道它是做什么的,但是你为什么要用它呢?这是不必要的,您可能希望将
pickedDate
重新用作
Date
对象。谢谢Heera先生。像魔术一样工作。我应该如何确定将onchange()/onblur()用于我的事件?我用onchange()来做这件事,结果被卡住了
Abhi@Abhi欢迎实际上,当您关注元素时,这两个事件的工作方式是相同的,但区别在于更改事件仅在值更改时触发。我认为您只能使用
onchange
事件。不知道需要说多少次:使用日期构造函数解析日期字符串是不可靠的。您不知道字符串的格式,也不知道浏览器是否能正确解析它。即使是最流行的浏览器的最新版本在如何解析ISO8601字符串方面也存在差异,所以请不要推荐它。
function dateValidate(inputField)
{
    var pickeddate =  new Date(inputField.value);
    var todayDate =  new Date();
    if( pickeddate > todayDate )
    {
       return true;
    }
    else
    {
        alert("Enter a valid Date");
    } 
}