How to add 5 minute javascript countdown timer whi

2020-02-29 11:07发布

I want to add 5 minute countdown timer which submit a form to my php page.

        <form name="myfm" id="myfm" method="post" action="Quiz.php">
        <table width=100%> <tr> <td width=30><td></td></td></tr> <table border=0>
        <?php $n=$n+1; ?>
        <tr><td>Question  <?php echo $n." "; echo $row[2]; ?></td></tr>
        <tr><td class=style8><input type="radio" name="ques['<?php echo $n; ?>'][]" value=1><?php echo $row[3]; ?></td></tr>
        <tr><td class=style8> <input type="radio" name="ques['<?php echo $n; ?>'][]" value=2><?php echo $row[4];?></td></tr>
        <tr><td class=style8><input type="radio" name="ques['<?php echo $n; ?>'][]"  value=3><?php echo $row[5];?></td></tr>
        <tr><td class=style8><input type="radio" name="ques['<?php echo $n; ?>'][]"  value=4><?php echo $row[6];?></td></tr>

    <?php 
        }
        echo "<tr><td><input type=submit name=submit id='result' value='Get Result'></form>";
        ?>
        </table></table>
        </form>

Please help me..I am doing a quiz page that automatically submit form when countdown ends.Thankyou...

5条回答
狗以群分
2楼-- · 2020-02-29 11:25

/*timer*/

      var seconds = 300;
      function secondPassed() {
          var minutes = Math.round((seconds - 30)/60),
              remainingSeconds = seconds % 60;

          if (remainingSeconds < 10) {
              remainingSeconds = "0" + remainingSeconds;
          }

          document.getElementById('countdown').innerHTML = minutes + ":" + remainingSeconds;
          if (seconds == 0) {
              clearInterval(countdownTimer);
             //form1 is your form name
            document.form1.submit();
          } else {
              seconds--;
          }
      }
      var countdownTimer = setInterval('secondPassed()', 1000);
.timer {
    width: 100px;
    font-size: 2.5em;
    text-align: center;
}
<div class="timer">
            <time id="countdown">5:00</time>
        </div>
<form action="index.php" name="form1" id="form1">

查看更多
成全新的幸福
3楼-- · 2020-02-29 11:27

Here is what you want, I used a while ago - https://jsfiddle.net/v5uc9wfx/3/

function CountDown(duration, display) {
    if (!isNaN(duration)) {
        var timer = duration, minutes, seconds;

        var interVal = setInterval(function () {
            minutes = parseInt(timer / 60, 10);
            seconds = parseInt(timer % 60, 10);

            minutes = minutes < 10 ? "0" + minutes : minutes;
            seconds = seconds < 10 ? "0" + seconds : seconds;

            $(display).html("<b>" + minutes + "m : " + seconds + "s" + "</b>");
            if (--timer < 0) {
                timer = duration;
                SubmitFunction();
                $(display).empty();
                clearInterval(interVal)
            }
        }, 1000);
    }
}

Here -

CountDown(duration, display) 

Duration is passed in seconds, i.e. 300 second= 5 Minutes. display is another parameter you want to display where.

You might need to clear interval as well-

clearInterval(interVal)

With form

        function CountDown(duration, display) {
            if (!isNaN(duration)) {
                var timer = duration, minutes, seconds;
                
              var interVal=  setInterval(function () {
                    minutes = parseInt(timer / 60, 10);
                    seconds = parseInt(timer % 60, 10);

                    minutes = minutes < 10 ? "0" + minutes : minutes;
                    seconds = seconds < 10 ? "0" + seconds : seconds;

                    $(display).html("<b>" + minutes + "m : " + seconds + "s" + "</b>");
                    if (--timer < 0) {
                        timer = duration;
                       SubmitFunction();
                       $('#display').empty();
                       clearInterval(interVal)
                    }
                    },1000);
            }
        }
        
        function SubmitFunction(){
       $('form').submit();
        
        }
    
         CountDown(300,$('#display'));
      
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="display">

</div>
<form action="/" >
<lable>Name: <input type="text"></lable>

</form>

查看更多
女痞
4楼-- · 2020-02-29 11:30

Hope this helps

var trig = setInterval(timer,1000);

    var counter=0;
    var min=4;
    var sec=60;

    function timer(){

    sec=--sec;

    if(sec===0){
    min=--min;
    sec=59;
    counter=++counter;
    }

    if(counter===5){
    sec=0;
    min=0;
    clearInterval(trig);
     functionSubmit();
     document.write("Submitted");
     }

     document.getElementById("output").innerHTML = min+" : "+sec;

     }
<p>Autosubmit in <span id="output"></span></p>

查看更多
Melony?
5楼-- · 2020-02-29 11:32

you can use Window setTimeout() Method to call submit form after 5 minutes

setTimeout(function submitform()
{
  document.myform.submit();
}, 60*1000*5);
查看更多
爷、活的狠高调
6楼-- · 2020-02-29 11:39

setTimeout() will fire a function SubmitForm after 300000 milliseconds = 5 minutes.

function SubmitForm(){
    $("form").submit();
};
setTimeout(SubmitForm,300000);//5*60*1000
查看更多
登录 后发表回答