Magento出生日期验证工作不正常

时间:2011-12-13 13:22:18

标签: validation magento magento-1.5

在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 个答案:

答案 0 :(得分:1)

错误可在/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;

显然,all too well-known parseInt Bug/Feature.

的varien下降了

简而言之,在ES5之前,所有以0开头的字符串都被视为octal/base-8个数字。由于base {8中不存在08parseInt - 它的计算结果为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;

干杯!