在Magento注册页面验证不允许我提交某个有效日期的表格。
例如: -
08/24/1988
MM/DD/YYYY
上述日期对我不起作用。 字段类是
输入文本验证 - 自定义验证 - 失败
我在源代码中找到了js,如下所示
var customer_dob = new Varien.DOB('.customer-dob', false, '%m/%e/%y');
哪里可能是错的。有人可能会建议我。
法师版:1.5.1.0
答案 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中不存在08
,parseInt
- 它的计算结果为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;
干杯!