做一种quizz,我想在有限的时间内回答问题。
因此,用户只需将答案放在表单中,然后进行验证即可。 Validate将重定向到process.php页面,该页面将检查所有内容。
如果用户未及时回答,则会将空表格汇总。 (因为错误的答案和空洞的答案都有相同的反响)
我知道有一些方法,使用元标记(html)或标题(php),但这不是我正在寻找的,代码定制的原因或安全原因。
实际上,我得到了这段代码。
<p>You will be redirected in <span id="counter">10</span> second(s).</p>
<script type="text/javascript">
function countdown() {
var i = document.getElementById('counter');
if (parseInt(i.innerHTML)<=0) {
location.href = 'process.php';
}
i.innerHTML = parseInt(i.innerHTML)-1;
}
setInterval(function(){ countdown(); },1000);
</script>
但这不是我想要的,因为用户可以轻松更改定时器,设置更大的值。
我还查看PHP function microtime(),将其放入会话中,如果计时器未更改,请检查我的process.php。但我失败了。
答案 0 :(得分:1)
您可以使用JQuery在倒计时结束时简单地提交表单:
// When DOM is fully loaded
$(function() {
var countDown = 5000;
// Will occur after "countDown" / 1000 seconds
setTimeout(function() {
$("#theQuizzForm").submit();
},
countDown
);
});
假设您的form
形状如此:
<form method = "whatever" action="process.php">
<!-- html elements -->
</form>
使用setTimeout
会在 countDown / 1000秒后提交表单,这是5秒。
答案 1 :(得分:1)
function(){
var a = setInterval(function(){
i = document.getElementById('counter');
if (parseInt(i.innerHTML)<=0) {
clearInterval(a);
document.getElementById('formName').submit();
}
i.innerHTML = parseInt(i.innerHTML, 10) - 1;
},1000);
}();