如何在Chrome中检查输入类型="日期"的(空)值

Kan*_*est 8 javascript input

我想检查用户是否输入了日期.但我无法弄明白该怎么做.

这里有一些javascript代码我已经得到但不起作用:

var valueDate = document.getElementById('Date').value;
if ( valueDate== null || valueDate== '')
{
    alert('Date is empty');
    return false;
}
Run Code Online (Sandbox Code Playgroud)

HTML <input type="date" name="Date" id="Date"/> 提前谢谢!

Mar*_*ulz 20

你可以检查一个假值:

if (!valueDate) {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

JavaScript的六个虚假值是

  1. undefined,
  2. null,
  3. false,
  4. 空字符串,
  5. 0(类型number),和
  6. NaN.

因为document.getElementById('Date').value如果设置了值,则始终为类型字符串,因此不会像0处理无输入那样得到误报,如果类型是这样的话number.

  • @Bas 你真的试过了吗?这个小提琴对我来说非常好(玩弄控件并查看控制台输出):http://jsfiddle.net/Zb28D/1/ (3认同)

Tr1*_*tan 7

如果我是你,我会尝试使用Date.parse().

var valueDate = document.getElementById('Date').value;

if(!Date.parse(valueDate)){
  alert('date is invalid');
}
Run Code Online (Sandbox Code Playgroud)

http://www.w3schools.com/jsref/jsref_parse.asp

  • 来自 Tr1stan 的解决方案更好,因为您也在测试有效日期。 (3认同)