首页 > 解决方案 > 使用 javascript 在表单中进行日期验证

问题描述

我正在尝试验证我的表格。我有一个日期输入,我正在检查以确保日期在 1 到 31 之间,月份在 0 到 12 之间,年份在 1910 到 2019 之间。

到目前为止,这是我的代码:

var date = document.getElementById('dob');
var day = date.substring(0, 2);
var month = date.substring(3, 5);
var year = date.substring(6, 10);

if (year > 2019 || year < 1910) 
{
  valid = false;
  document.getElementById('dateValid').style.display = "inline-block";
} 
else 
{
  document.getElementById('dateValid').style.display = "inline-block";
}

这是我的日期字段的 html 代码:

<div>
   <label for="dob">Date of Birth</label>
    <input type="date" name="dob" id="dob">
    <span class="error" id="dateValid">valid date required</span>

    </div>

我已经在一天和一个月内重复了上述内容。我不确定为什么这不起作用。任何帮助,将不胜感激。

标签: javascripthtmlvalidation

解决方案


完整的源代码肯定有助于回答这个问题。但从我在这里缝制的有限信息来看。getElementById 会给你元素。你仍然需要价值。通过 console.log 检查您在 date 变量中获得的值由于我不确定元素“dob”,因此我无法对此发表评论。date.value 应该为您提供该字段的值。以下应该工作:

var date = document.getElementById('dob').value;
var day = date.substring(0, 2);
var month = date.substring(3, 5);

推荐阅读