Bei unserer Magento 1.5.1.0 Installation fiel einem Kunden auf, dass er seinen Geburtstag nicht eingeben konnte, da das System ihm mitteilte “Please enter a valid full date” oder eben entsprechend auf deutsch.
Nach einer kleinen Prüfung stellte sich heraus, dass ausschließlich die Monatszahlen 08 für August und 09 für September nicht funktionierten. Alle anderen Monate klappten. Auch die Tages- oder Jahresangabe war nicht relevant. Nur diese beiden Monate brachten die Fehlermeldung. Dieses Problem fiel auf bei der normalen Kundenregistrierung bzw. dem Versuch sich anzumelden, wie auch im Checkout selber beim Versuch ein Benutzerkonto anzulegen.
Gelöst haben wir das Problem indem wir in der js.js im Ordner /js/varien/ ca. in Zeile 438 folgendermaßen geändert haben:
var error = false, day = parseInt(this.day.value) || 0, month = parseInt(this.month.value) || 0, year = parseInt(this.year.value) || 0;
zu
var error = false, day = parseInt(this.day.value, 10) || 0, month = parseInt(this.month.value, 10) || 0, year = parseInt(this.year.value, 10) || 0;
Nach einem Cachereload funktionierte dann auch die Eingabe der beiden Monate problemlos.
Genutzt in Magento Version 1.5.1.0 Kommentare? Ergänzungen? Hinweise? Gerne!
sehr schön.. jetzt per Zufall gefunden! Hatte selbes Problem ..
parseInt() geht wohl wenn keine Basis mitgeliefert wird bei “08” und “09” von ‘nem oktalen Wert aus und interpretiert die Zahl als 0 => ist aber “not valid”. Erst nachdem die Basis als Dezimal gesetzt wird, stimmt auch die Validierung! Bene..