Javascript jQuery-帮助定义年龄门中的无效日期
我正在为一个包含酒精的客户页面设置年龄门。访客必须填写日期、月份、生日以及国家。该表格与不同国家的最低购买年龄相关 我已经设法让表单重定向到startpage,如果他们足够大,或者如果他们太小,则显示“对不起,你还没有足够大,无法进入此网站”。到目前为止还不错 但如果他们输入的不是实际日期,我还需要表单显示“请输入有效的出生日期” 是否有办法定义var invalidDate= 如果他们输入字母而不是数字,则可以是invalidDate,但如果Day的无效值不在数字1-31之间,月份的无效值不在数字1-12之间,年份的无效值不在19XX或20XX之间,则非常感谢 对不起,如果我不清楚 目前的表格(大多数国家已删除,因为列表太长):Javascript jQuery-帮助定义年龄门中的无效日期,javascript,jquery,forms,Javascript,Jquery,Forms,我正在为一个包含酒精的客户页面设置年龄门。访客必须填写日期、月份、生日以及国家。该表格与不同国家的最低购买年龄相关 我已经设法让表单重定向到startpage,如果他们足够大,或者如果他们太小,则显示“对不起,你还没有足够大,无法进入此网站”。到目前为止还不错 但如果他们输入的不是实际日期,我还需要表单显示“请输入有效的出生日期” 是否有办法定义var invalidDate= 如果他们输入字母而不是数字,则可以是invalidDate,但如果Day的无效值不在数字1-31之间,月份的无效值不在
变量
$=$| | jQuery;
国家={
“瑞典”:20,
“丹麦”:18,
“其他”:21,
}
$(文档).ready(函数(){
$(“表格”)。提交(功能(e){
e、 预防默认值();
var day=parseInt($(“输入[name=day-796]”)val());
var month=parseInt($(“输入[name=month-664]”)。val()-1);
var year=parseInt($(“输入[name=year-262]”)val();
var dateOfBirth=新日期(年、月、日、0、0、0);
var ageDifMs=Date.now()-dateOfBirth.getTime();
var ageDate=新日期(ageDifMs);
var age=Math.abs(ageDate.getUTCFullYear()-1970);
var country=$(“选择”).val();
var hasAccess=年龄>=国家[国家];
var noAccess=age我一直发现,让日期选择器具有特定规则(例如超过18条)的最佳方法是以年、月、日格式显示
我为一个小项目创建了这个,也许它会帮助你
jshiddle.net/adamjld/3gdxkL42您可以从这里开始阅读,为什么不使用datepicker?我不能使用datepicker,因为我是按照他们的设计为客户构建的,没有datepicker,他们不希望有三个单独的日/月/年字段。另外,我对javascript非常陌生。我已经四处查看了很多,但没有发现我能理解的任何事情。请根据您的要求定义无效日期,以便我们能够提供帮助。好的,只是将其添加到问题中。无效日期可以是如果他们输入字母或数字,但如果日期不是1-31之间的数字,如果月份不是1-12之间的数字,如果年份不是从w开始,则最好定义无效日期第19XX条或第20XX条。
<script type="text/javascript">
var
$ = $||jQuery;
countries = {
"Sweden": 20,
"Denmark": 18,
"Other": 21,
}
$(document).ready(function() {
$("form").submit(function(e) {
e.preventDefault();
var day = parseInt($("input[name=day-796]").val());
var month = parseInt($("input[name=month-664]").val() - 1);
var year = parseInt($("input[name=year-262]").val());
var dateOfBirth = new Date(year, month, day, 0, 0, 0, 0);
var ageDifMs = Date.now() - dateOfBirth.getTime();
var ageDate = new Date(ageDifMs);
var age = Math.abs(ageDate.getUTCFullYear() - 1970);
var country = $("select").val();
var hasAccess = age >= countries[country];
var noAccess = age <= countries[country];
if (hasAccess) {
window.location.href = "www.startpageURL.com";
} else if (noAccess) {
document.getElementById("warning_output").innerHTML = "Sorry, you're not old enough to enter this site.";
}
})
})
</script>