【问题标题】:IE8: Object Doesn't Support This Property or Method (Date function)IE8:对象不支持此属性或方法(日期函数)
【发布时间】:2013-08-06 18:30:45
【问题描述】:

我收到一个只出现在出色的 IE8 上的错误,它指向以下函数,特别是以下行:return (expDate.getTime() > Date.now());

$.validator.addMethod("checkDocExpiry",function(value) {
    var driverLicExp = ($('#drivers-license-expiration').val()) ? $('#drivers-license-expiration').val() : '';
    if (driverLicExp != ''){
        var expDate = new Date(driverLicExp);
        return (expDate.getTime() > Date.now());
    }else{
        return (true);
    }
}, "Your driver's license has expired.");

我不确定是什么原因造成的,我对为旧版浏览器进行开发还很陌生。这在 FF、IE10、Chrome、Safari 中运行良好。

任何帮助将不胜感激。

谢谢

【问题讨论】:

  • 这是来自 jquery UI 日期选择器的日期。在这个特定的测试用例中:08/13/2013
  • — 不是您的直接问题,但您不应依赖 Date 对象将随机字符串解析为日期,尤其是与您的评论中的区域一样具体的日期。

标签: javascript jquery validation internet-explorer-8 jquery-validate


【解决方案1】:

我的通灵调试技巧告诉我,您使用的是不支持 IE8 的 jQuery 2.0。

您需要使用 1.10。

【讨论】:

    【解决方案2】:

    看起来Date.now() 在 IE8 中不受支持(请参阅底部的表格):

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/now

    new Date() 应该为您提供一个包含当前日期的日期对象。

    【讨论】:

    • 好的,谢谢,我会试试... 20 分钟的茶歇,VM 启动时... sigh
    【解决方案3】:

    Shim 使用事实 valueOf 一个 Datems..

    if (!Date.now) Date.now = function () {return +new Date();};
    

    【讨论】:

      【解决方案4】:

      IE 8 不支持 Date.now。将其实现为:

      if(!Date.now) { Date.now = function(){ return new Date().getTime();};}
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多