7

Dostaję błąd, który pojawia się tylko na wielkim IE8, to wskazuje na następujących funkcji, w szczególności linię: return (expDate.getTime() > Date.now());IE8: Obiekt nie obsługuje tej właściwości lub metody (Date Function)

$.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."); 

Nie jestem pewien, co spowodowałoby to, jestem dość nowy do opracowania dla starszych przeglądarek. Działa to dobrze w FF, IE10, Chrome, Safari.

Każda pomoc będzie mile widziana.

Dzięki

+0

Jest to data z selektora daty interfejsu użytkownika jquery. W tym konkretnym przypadku testowym: '08/13/2013' – Neil

+0

- nie w twoim bezpośrednim wydaniu, ale nie powinieneś polegać na obiekcie Date, aby parsować losowe ciągi jako daty, w szczególności daty tak specyficzne regionalnie, jak te w twoim komentarzu. – RobG

Odpowiedz

0

moich psychicznych umiejętności debugowania powiedzieć, że jesteś przy użyciu jQuery 2.0, która nie obsługuje IE8.

Musisz użyć wersji 1.10.

+1

jquery-1.8.3.min.js – Neil

7

Shim wykorzystując fakt valueOfData jest ms ..

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

IE 8 nie obsługuje Date.now. Zaimplementuj go jako:

if(!Date.now) { Date.now = function(){ return new Date().getTime();};} 
Powiązane problemy