如何在弹出框中的有效答案之前启动它

时间:2015-02-03 23:26:05

标签: javascript html

嗨我想让这个开始加载,直到用有效答案回答提示框。并且每月只弹出一次,这可能吗?或者除了JS和HTML之外还需要其他什么吗?

<script language="javascript">
 function buildBar(id, callback) {
     var currentAdb = 0;
     var imgCtb = 150;

     function cycleb() {
         var output = '';
         for (var i = 0; i < imgCtb; i++) {
             output += i > currentAdb ? '&nbsp;' : '/';
         }
         output += '';
         document.getElementById(id).innerHTML = output;
         ++currentAdb;
         if (currentAdb == imgCtb) {
             window.clearInterval(myInterval);
             if (typeof callback == 'function') {
                 callback();
             }
         }
         else{
             window.setTimeout(cycleb,10+Math.random()*225);
         }


     }
     var myInterval = window.setTimeout(cycleb, 100);
 }

 function callback1() {
     buildBar('adLinkb2', callback2);
 }

 function callback2() {
     //window.location... stuff here
     window.location = "https://findretros.com/rankings/vote/NabboHotel";
 }

 buildBar('adLinkb', callback1);
 </script>
 <div id="adLinkb" style="border: 1px solid black;width:452;background-color:black;border-color:white"></div>
<div id="adLinkb2" style="border: 1px solid black;width:452;background-color:black;border-color:white"></div>

1 个答案:

答案 0 :(得分:1)

尝试使用prompt(),然后检查用户在提示中输入的值。

function bar(){
 document.getElementById('test').innerHTML="You answered the question correctly!"  
}
function foo(){
    document.getElementById('test').innerHTML="You didn't answer the question correctly."
}

var answer = prompt("Enter Test123","");
if(answer == "Test123"){
   bar(); 
}
if(answer != "Test123"){
    foo();
}
<div id="test"></div>

至于每月运行一次...如果你想让它在每个月的第一天运行,你可以使用getDate()并在结果为1时调用函数(或者你想要使用的任何一天)。如果您需要在提供答案一个月后提示用户,那么您将需要使用服务器端脚本和数据库(例如PHP + MySQL)。

如果用户有多个字符串可以输入(例如Test123,Sample456等)并且他们连续两个月不能输入相同的字符串,则需要使用MySQL等数据库来存储结果。然后你需要将每月的答案与上个月的答案进行比较。