Jquery日期验证错误

时间:2011-06-07 12:40:05

标签: javascript jquery jquery-validate

我一直在尝试实现一个jQuery函数来验证日期格式,但我遇到了一个奇怪的问题。如果日期或月份中包含数字“8”或“9”,(例如:08/06/2011)则表示日期无效......

这里有一个演示: http://www.geektantra.com/projects/jquery-form-validate/advanced_demo/

谢谢你的帮助!

1 个答案:

答案 0 :(得分:4)

如果值0809出现问题,您几乎肯定忘记在parseInt()上指定基数参数。

如果未指定,则尝试从输入中自动检测基数,如果找到前导零,则尝试将其解析为八进制数。对于数字0007这不是一个问题,它甚至评估为基数为10,但由于显而易见的原因0809是无效的八进制号。

为避免将来出现此问题,请确保始终将radix参数设置为强制将数字解析为base-10,而不管输入如何:

var value = parseInt(someString, 10);

查看HTML文件第29行附近的javascript,并将其更改为以下内容:

jQuery("#ValidDate").validate({
    expression: "if (!isValidDate(parseInt(VAL.split('-')[2], 10), parseInt(VAL.split('-')[0], 10), parseInt(VAL.split('-')[1], 10))) return false; else return true;",
    message: "Please enter a valid Date"
});