Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript在表单中进行日期验证_Javascript_Html_Validation - Fatal编程技术网

使用javascript在表单中进行日期验证

使用javascript在表单中进行日期验证,javascript,html,validation,Javascript,Html,Validation,我正在尝试验证我的表单。我有一个日期输入,我正在检查以确保日期介于1和31之间,月份介于0和12之间,年份介于1910和2019之间 这是我目前的代码: var-date=document.getElementById('dob'); var day=日期子字符串(0,2); var月=日期。子字符串(3,5); var年=日期子串(6,10); 如果(年份>2019年|年份2019年|年份@DavidJapan另一个javascript代码是验证我的其他输入,如“名字”、“姓氏”等,所有这些都

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

这是我目前的代码:


var-date=document.getElementById('dob');
var day=日期子字符串(0,2);
var月=日期。子字符串(3,5);
var年=日期子串(6,10);
如果(年份>2019年|年份<1910年)
{
有效=错误;
document.getElementById('dateValid').style.display=“内联块”;
} 
其他的
{
document.getElementById('dateValid').style.display=“内联块”;
}
这是日期字段的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检查日期变量中的值 由于我不确定“dob”元素,因此我无法对此发表评论。 date.value应提供该字段的值。 以下各项应起作用:

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

document.getElementById('dob')
将返回html元素,因此不能首先使用子字符串。您需要通过
.value
获取元素值。我提供了带有输入日期的插图

函数检查(){

var date=document.getElementById('dob')。值; var day=日期子字符串(9,2); var月=日期。子字符串(5,2); 变量年份=日期子字符串(0,4); 控制台日志(年) var有效; 如果(年份>2019年|年份<1910年) { 有效=错误; //document.getElementById('dateValid').style.display=“内联块”; } 其他的 { 有效=真; } console.log(有效) }
内置表单验证使用HTML5表单验证功能。这种验证通常不需要JavaScript。内置表单验证比JavaScript具有更好的性能。但是,虽然高度可定制,但本机验证不像JavaScript那样可定制

输入:无效{
边框:2个红色虚线;
}
输入:有效{
边框:2件纯黑;
}

出生日期
所需的有效日期

我们需要您完整的源代码来分析您的问题:>@DavidJapan另一个javascript代码是验证我的其他输入,如“名字”、“姓氏”等,所有这些都是WorkID您检查日期的数据类型吗?如果是字符串,则将字符串与integer.as(在我的html中)进行比较,以获得日期字段?var date=document.getElementById('dob');此行将为您提供用于获取其值的输入标记,该标记位于您需要获取date.value的字段中,该标记将为您提供输入字段的值替换此行var date=document.getElementById('dob');按var日期=document.getElementById('dob')。值;编辑答案以供参考是可行的