javascript - 使用 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>
我已经在一天和一个月内重复了上述内容。我不确定为什么这不起作用。任何帮助,将不胜感激。
解决方案
完整的源代码肯定有助于回答这个问题。但从我在这里缝制的有限信息来看。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);
推荐阅读
- c# - 防止出现应用程序错误消息“等待任务未观察到任务的异常”
- android - 反对什么:
在 Kotlin 中代表什么? - python - 如何使用 Python 请求模拟我在 curl 中发出的 POST 请求?
- flutter - 从 StatefulWidget 访问状态
- c# - 如何使 localhost 地址可供网络上的其他设备使用?
- swift - TapGesture 在 Xcode 11.0 Beta 中不起作用
- cors - Web 客户端无法访问响应的授权标头
- sqlite - SQLITE - 在触发器内执行插入
- vb.net - 所遵循的程序适用于具有不同名称的不同计算机
- html - 网页的 cjk 字符的详细信息如何正确?