繁体   English   中英

jQuery-帮助定义年龄门中的无效日期

[英]jQuery - Help to define invalid date in age gate

我正在为包含酒精的客户页面设置年龄限制。 访客必须填写日,月,出生年以及国家。 该表格与不同国家/地区的最低购买年龄相关。

如果年龄足够大,我设法将其重定向到起始页;如果年龄太小,则显示“ 对不起,您还不够大,无法进入该网站 ”。 到现在为止还挺好。

但是如果他们输入的不是实际日期,我还需要显示“ 请输入有效的出生日期 ”的表格。

有没有定义var invalidDate =的方法

invalidDate可能是如果他们输入字母而不是数字,但是如果Day对于不在1-31之间的数字,对于Month不是1-12的数字以及对于Year的任何数字,则是无效的。不是以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>

我们欢迎所有的建议!

我一直发现,使用某些规则(例如,超过18条)的日期选择器的最佳方法是以年,月,日格式显示它。

我是为一个正在从事的小项目创建的,也许会对您有所帮助。

jsfiddle.net/adamjld/3gdxkL42

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM