Проверка поля даты рождения в Magento не работает должным образом - PullRequest
0 голосов
/ 13 декабря 2011

На странице регистрации Magento проверка не позволяет мне отправить форму на определенную дату.

Например: -

08/24/1988
MM/DD/YYYY

вышеуказанная дата не работает для меня. Класс поля

проверка входного текста-пользовательская проверка-сбой

Я нашел JS в источнике, как показано ниже

var customer_dob = new Varien.DOB('.customer-dob', false, '%m/%e/%y'); 

где может быть не так. Может кто-нибудь подсказать мне.

Магическая версия: 1.5.1.0

1 Ответ

1 голос
/ 15 декабря 2011

Ошибка находится в /js/varien/js.js, строка 438.

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

Очевидно, что varien упал для все тоже хорошо известно parseInt Ошибка / Функция.

Короче говоря, до ES5 все строки, начинающиеся с 0, обрабатываются как число восьмеричное / основание-8 . Поскольку 08 не существует в base-8, parseInt -ing оценивается как 0.

parseInt() получает второй необязательный аргумент, указывающий базу, которую он должен использовать для интерпретации.

parseInt('8');      // => 8
parseInt('08');     // => 0
parseInt('08', 10); // => 8

Итак, решение вашей проблемы состоит в том, чтобы исправить строку, упомянутую выше, чтобы прочитать

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

Ура!

...