Javascript 年龄验证弹出窗口

标签 javascript jquery html css

由于我对 JavaScript 的了解不多,我通过帮助一些在线教程和我 friend 的 e 创建了一个年龄验证弹出窗口。

实时查看- http://www.arif-khan.net/project/popup/

我的问题是我想在加载页面内容后加载/显示此弹出窗口,但不知道该怎么做。

代码-

<script type="text/javascript">
 function confirmAge(){
var d = new Date();
//var time_stmp = Math.round(d.getTime()/1000);
var now_us = d.getTime();


var myDate=document.getElementById('day').value +"-"+ document.getElementById('mon').value +"-"+ document.getElementById('yer').value;
myDate=myDate.split("-");
var newDate=myDate[1]+"/"+myDate[0]+"/"+myDate[2];
var date_us=new Date(newDate).getTime();

var age_us=(now_us-date_us)/(1000*356*24*3600);


if(age_us<18){
    alert("You must be 18 years of age to see this site.");
    return false;
}
else
    document.getElementById('ac-wrapper').style.display="none"; 

   }
</script>

CSS-

<style>
#ac-wrapper {
position            : absolute;
top                 : 0;
left                : 0;
width               : 100%;
height              : 820px;
background: rgba(255,255,255,.6);
z-index             : 1001;
}
#popup{
 width: 555px;
height: 375px;
background: #FFFFFF;
border: 5px solid #000;
border-radius: 25px;
-moz-border-radius: 25px;
-webkit-border-radius: 25px;
 box-shadow: #64686e 0px 0px 3px 3px;
-moz-box-shadow: #64686e 0px 0px 3px 3px;
-webkit-box-shadow: #64686e 0px 0px 3px 3px;
position: relative;
top: 150px; left: 375px;
 }
 #popup_logo{
position: relative;
left: 130px; top: 30px;
 }
 #popup_form{
text-align: center;
 }
 #popup_submit{
width: 120px;
height: 47px;
background: url(images/Enter-button.png) no-repeat;
cursor: pointer;
border: 0px;
 }
 p{
font: bold 20px Tahoma;
color: #000;
text-align: center;
 }
</style>

HTML-

    <div id="ac-wrapper">
      <div id="popup"> <img src="images/store_logo.png" alt="D elicious Liquid Vapor" id="popup_logo"><br />
        <br />
        <br />
        <br />
        <p>To play with the bull, you must be 21 years of age.<br />
          Please enter your birth date...</p>
        <br />
        <div id="popup_form">
          <select name="birthmonth" id='mon'>
            <option value="1">January</option>
            ......................
            <option value="12">December</option>
          </select>
          <select name="birthday" id='day'>
            <option value="1">1</option>
            <option value="2">2</option>
            .....................
            <option value="31">31</option>
          </select>
          <select name="birthyear" id="yer">
            <option value="2007">2013</option>
            ..............
            <option value="1900">1900</option>
          </select>
          <br />
          <br />
          <input type="button" id="popup_submit" name="submit" value="" onClick="confirmAge()" />
        </div>
      </div>
    </div>

最佳答案

您需要在内容加载后执行异步回调(到呈现弹出窗口的函数)- 在 DOM 准备就绪时或在加载所有内容时(这可能太长)

看这里

http://javascript.info/tutorial/onload-ondomcontentloaded

你的代码需要稍微重组一下

function renderMyPopup() {
 // implementation in here 
}

然后这里的异步回调

onload = function() {
    renderMyPopup()
}

...如果您使用 jQuery,有更简单的方法可以做到这一点 看这里

$(document).ready shorthand

关于Javascript 年龄验证弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19643043/

相关文章:

javascript - 在 IE 中加载 webvtt 轨道

javascript - 我的登录导航项在 Bootstrap 中未与右侧对齐

html - 编号列表中的文本换行

javascript - jQuery Datepicker 格式日期错误的方式

html - 如何在点击时在 A4 页面内打印大小票据?

html - 带有图像交换的 CSS 水平导航不起作用

javascript - 从 ajax 调用内部将变量传递给函数

javascript - 通过字符串名称访问 parseJSON

javascript - JS - 从另一个数组中的数组中删除值

javascript - 页面刷新后所选选项卡不处于事件状态