【问题标题】:Javascript to validate date entered验证输入日期的 Javascript
【发布时间】:2013-04-20 18:23:16
【问题描述】:

我是Javascript 编程的新手,我正在尝试验证从外部Javascript 文件获得的日历sn-p 中输入<input> 的日期。我正在尝试验证日期以检查用户是否输入了过去的日期。如果输入的日期是过去的日期,那么我需要打印一条警告消息以输入未来期间的有效日期。

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

<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");
 }
}

但是这段代码似乎不起作用。我希望当我在&lt;input&gt; 字段中输入过去的日期并跳出时运行这个 Javascript 函数。我想在字段中输入日期时验证日期,而不是在提交表单时验证。

【问题讨论】:

    标签: javascript jquery html


    【解决方案1】:

    由于您的代码存在问题,因此无法正常工作,只需替换此代码即可:

    var pickeddate = new Date(v2.Value);
    

    用这个:

    var pickeddate = new Date(v2.value);   // 'value' should be in lower case
    

    由于它不正确,pickeddate 始终为undefined 并且代码不起作用。

    【讨论】:

    • 不是undefined,而是具有NaN 值的Date 对象在技术上是正确的。但是在比较中是一样的……
    【解决方案2】:

    你可以试试这个

    HTML

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

    JS

    function dateValidate(inputField)
    {
        var pickeddate =  new Date(inputField.value);
        var todayDate =  new Date();
        if( pickeddate > todayDate )
        {
           return true;
        }
        else
        {
            alert("Enter a valid Date");
        } 
    }
    

    DEMO.

    【讨论】:

    • 获取时间戳,here
    • 我知道它的作用,但你为什么要使用它?这是不必要的,您可能希望将 pickedDate 重用为 Date 对象
    • 谢谢赫拉先生。像魔术一样工作。我应该如何确定在我的活动中使用 onchange()/onblur()?我为此使用了 onchange() 并被困在那里。
      阿比
    • @Abhi,欢迎您!实际上,当您关注元素时,这两个事件的工作方式相同,但不同之处在于 change 事件仅在值更改时触发。我认为你只能使用onchange 事件。
    • 不知道需要说多少次:使用 Date 构造函数解析日期字符串是不可靠的。您不知道字符串的格式,也不知道浏览器是否会正确解析它。即使是最流行的浏览器的最新版本在如何解析 ISO 8601 字符串方面也存在差异,所以请不要推荐它
    猜你喜欢
    • 2016-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-09
    • 1970-01-01
    • 2021-02-23
    • 1970-01-01
    相关资源
    最近更新 更多