此代码片段假设一个 HTML 表单,ID 为“age-form”,并包含三个输入框(文本框或下拉菜单),ID 分别为“day”、“month”和“year”。
$("#age-form").submit(function(){
var day = $("#day").val();
var month = $("#month").val();
var year = $("#year").val();
var age = 18;
var mydate = new Date();
mydate.setFullYear(year, month-1, day);
var currdate = new Date();
currdate.setFullYear(currdate.getFullYear() - age);
if ((currdate - mydate) < 0){
alert("Sorry, only persons over the age of " + age + " may enter this site");
return false;
}
return true;
});
您可能希望使用比警报更优雅的方式,并且也应该使用服务器端代码验证表单,否则这种保护只对启用 JavaScript 的用户有效。
不错的文章!
以下是 php 代码
Validators – 2 – Age validation @ alternateIllusion
这很好,但我不知道年龄验证有什么意义。谁会在受限制年龄的情况下给出他们的真实年龄。
因为法律方面的考虑。有了年龄验证,他们就不会被任何人起诉,因为访问过该网站的人已经声明他们已经达到法定年龄并违反了使用条款。
重点是,例如,某些国家的法律……
感谢这段代码,它非常有用。
我一直使用这段代码,它似乎只能准确到出生年份。所以,假设我今年满 18 岁,但实际上只有 17 岁,它仍然会让我通过。
有没有办法更准确地验证日期和月份?
谢谢
这可能适合您的需求。
mydate.setFullYear(year, month-1, day); 为什么月份要减 1 ?