Magento 1.5: Checkout – Please enter a valid full date


Möchte man im Checkout das Geburtstagsdatum als Pflichtfeld abfragen kann es bei den Monaten 08 und 09 zu einer Fehlermeldung Please enter a valid full date kommen.
Obwohl alles korrekt eingeben wurde geht der Checkout an dieser Stelle nicht weiter. Der Kunde ist verwirrt und bricht unter Umständen den Einkauf ab.
Hier die Lösung:Ab magento 1.5 wird die Datumvalidierung der Formulareingabe mit parseInt von einem String in eine Ganzzahl umgewandelt.
Die Vorgehensweise ist zwar lobenswert jedoch wurde vergessen parseInt den radix 10 mit anzuhängen. Dieses hat zur Folge das parseInt die Defaultvorgabe radix 16 verwendet und die Eingabe als Hexadezimalwert interpretiert. Und dies löst die Fehlermeldung aus, da die eingegebenen Datumswerte (bei bestimmten Eingaben, z.B. Monat 09 und 09) als nicht auswertbar vom Parser interpretiert werden.
Hört sich alles sehr kompliziert an, die Lösung ist aber recht einfach.

In der Datei js/varien/js.js
in ca. Zeile 438 die Zeile

var error = false, day = parseInt(this.day.value) || 0, month = parseInt(this.month.value) || 0, year = parseInt(this.year.value) || 0;

mit dieser ersetzen

var error = false, day = parseInt(this.day.value, 10) || 0, month = parseInt(this.month.value, 10) || 0, year = parseInt(this.year.value, 10) || 0; 

Nun wird der radix 10 mitgegeben und die Validierung läuft auch bei den Monaten 08 und 09 problemlos durch, der Checkout kann abgeschlossen werden.

Stefan Pröhl
magento freelancer

Kommentare: Magento 1.5: Checkout – Please enter a valid full date

  1. Matülde sagt:

    Vielen Dank für diesen tollen Artikel! Hat mir sehr geholfen! Zum Glück hat sich der Kunde gemeldet, wer weiss wie viele Kaufabbrüche das Problem noch erzeugt hätte.

    [Antwort]

  2. Rene sagt:

    Danke!, Ist das problem bei 1.6.x noch vorhanden?

    [Antwort]

  3. Rogério Vaz sagt:

    Thanks to the Google translator I was able to read your post and fix my checkout!

    Thank you very much,

    From Brazil

    [Antwort]

Kommentar schreiben