使用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} 多谢各位使用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=日期分割(
函数处理日期(日期){
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)从代码测试的目的,我已经包括