Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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/3/html/78.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 - Fatal编程技术网

使用Javascript的年龄限制

使用Javascript的年龄限制,javascript,Javascript,我是JavaScript新手,对该语言一无所知。我试图在工作申请表中加入年龄限制,其中出生日期文本字段的日期格式为dd/mm/yyyy,申请人在填写表格时必须在15到80岁之间,否则他们将无法申请。我不想把它嵌入到HTML文件中,只想把它写在.js文件中 对于DOB,输入类型为文本,名称为DOB,id为DOB,模式为(0[1-9]| 1[0-9]| 2[0-9]| 3[01])/(0[1-9]| 1[012])/[0-9]{4} 多谢各位 函数处理日期(日期){ var parts=日期分割(

我是JavaScript新手,对该语言一无所知。我试图在工作申请表中加入年龄限制,其中出生日期文本字段的日期格式为dd/mm/yyyy,申请人在填写表格时必须在15到80岁之间,否则他们将无法申请。我不想把它嵌入到HTML文件中,只想把它写在.js文件中

对于DOB,输入类型为文本,名称为DOB,id为DOB,模式为(0[1-9]| 1[0-9]| 2[0-9]| 3[01])/(0[1-9]| 1[012])/[0-9]{4}

多谢各位

函数处理日期(日期){
var parts=日期分割(“/”);
返回新日期(零件[2],零件[1]-1,零件[0]);
}
功能表(日期){
var dBirth=processDate(日期);
var dToday=新日期();
var diff=dToday.getTime()-dBirth.getTime();
返回数学楼层(差值/(1000*60*60*24*365.25));
}
功能验证日期(日期){
var年龄=Calage(日期);
控制台日志(年龄);

如果(15您可以使用HTML5输入日期的最小和最大属性

HTML:

    <input type="date" id="txtDate" />

JavaScript:

        var dtToday = new Date();
        var month = dtToday.getMonth() + 1;
        var day = dtToday.getDate();
        var year = dtToday.getFullYear();
        var maxYear = year - 18;
        if(month < 10)
            month = '0' + month.toString();
        if(day < 10)
            day = '0' + day.toString();

        var maxDate = maxYear + '-' + month + '-' + day;
        var minYear = year - 80;
        var minDate = minYear + '-' + month + '-' + day;
        alert(maxDate);
        document.querySelectorAll("#txtDate")[0].setAttribute("max",maxDate);

        document.querySelectorAll("#txtDate")[0].setAttribute("min",minDate);
var dtToday=新日期();
var month=dtToday.getMonth()+1;
var day=dtToday.getDate();
var year=dtToday.getFullYear();
var maxYear=第18年;
如果(月<10)
month='0'+month.toString();
如果(第10天)
day='0'+day.toString();
变量maxDate=maxYear+'-'+月+'-'+日;
var minYear=年份-80;
var minDate=年+月+日;
警报(maxDate);
document.querySelectorAll(“#txtDate”)[0].setAttribute(“max”,maxDate);
document.querySelectorAll(“#txtDate”)[0].setAttribute(“min”,minDate);

这是您需要在服务器上执行的操作。可能的重复操作似乎是日期验证、解析和两个日期之间的差异的重复。您应该一次一个地跨越这些桥梁。正如Pointy所说,在服务器上执行此操作,因为您无论如何都不能信任客户端代码。在客户端执行此操作对于用户来说是很好的enience,只要您在服务器端也这样做。无论如何,请注意,您的正则表达式不保证有效日期,因为它接受,例如“31/02/2000”.顺便问一下,为什么有年龄上限?年龄歧视法允许你住在哪里?@nnnnnnnn这是我大学作业的一部分。我没有发言权。哈哈。我只能在客户端服务器上做。我有输入type=“text”而不是指定的日期如果用户的年龄不在18-50岁之间,则限制用户使用警报进行申请,并应从用户输入的出生日期开始计算。Keep type=“text”如果满意,则使用模式验证日期,然后使用@GavinLuo代码验证年龄,并在返回false时显示警报。一旦我打开页面,警报提示会显示“此站点显示1999-09-13”。我不希望在打开该页面时出现此提示。@user8595022请删除警报(maxDate)从代码测试的目的,我已经包括