【发布时间】:2015-11-17 11:57:05
【问题描述】:
我有一个 jquery datepicker 分配给一个文本字段。文本字段是不可编辑的,只有退格键可以用于删除日期。我已使用以下代码检查该字段是否具有有效日期。这在 mozilla 中非常有效,但在 chrome 中却不行。
<input type="text" class="date_field from_date" name="from_date" placeholder="From date">
//datepicker
$(".from_date").datepicker({
dateFormat: "yy-mm-dd"
});
//only backspace keypress allowed
$(".date_field").keydown(function (e) {
if (e.keyCode != 8) {
e.preventDefault();
}
});
//check the date is valid.
//For example('2015-09-' is the value of textfield)
alert(Date.parse($('.from_date').val()));
//returns NaN in mozilla,but returns number in chrome
if (Date.parse($('.from_date').val())) {
//do the rest code
}
【问题讨论】:
-
是否返回
NaN? -
@WisdmLabs mozilla 返回 NaN,但 chrome 给了我一个数字
-
Date.parse在 chrome 上运行良好,它在您的情况下返回与“2015-09-01”相同的数字。Date.parse不是测试日期格式是否正确的最佳方法。您必须使用一些正则表达式来匹配您想要的日期模式。我建议 T.J.Crowder 先检查dateString.test(/^\d{4}-\d{2}-\d{2}$/)然后测试Date.parse是否不返回 NaN -
由于
Date.parse不是为了测试字符串是否代表有效日期,而是尝试从给定字符串中获取日期,我会说这实际上不是“@987654328”的情况@ 不在 Chrome 中工作”,而是“Date.parse在 FF 和 Chrome 中的行为不同”的情况。我想这个问题的标题应该改写以反映这一点。
标签: jquery google-chrome date mozilla