2017-05-04 97 views
0

基本上我有一个计时器JavaScript代码,但它是一个countup,所以当它停止和clearInterval(计时器)运行时,我想让我的输入隐藏更改计时器的值动态。如何动态设置输入隐藏的值作为countup定时器的值?

例子是:

向上计数时达到5个,如果它停了,我想我的输入隐藏有5值这可能吗?

原因是:我想根据时间制作一个基本的记分牌。有了这个值,人们的分数记录为秒。这就是我的想法。

JS代码是:

var sec = 0; 

function pad(val) { 
    return val > 9 ? val : "0" + val; 
} 
var timer = setInterval(function() { 
    document.getElementById("seconds").innerHTML = pad(++sec % 60); 
    document.getElementById("minutes").innerHTML = pad(parseInt(sec/60, 10)); 
    {if ($("#character").is(':hidden')) 
{ clearInterval(timer); 
}} 
}, 1000); 

setTimeout(function() { 
    clearInterval(timer); 
}, 60000); 

HTML代码:

<form action="kayit.php"> 
    Ismini gir : <input type="text"> 
    <input id="score" type="hidden" value="I want that value changed dynamically as second." > 
    <input type="submit" value="Onayladim"> 

谢谢您的回答。

回答

0

您可以通过分配其值属性来修改隐藏输入的值。

document.getElementById('score').value = Number(document.getElementById("seconds").innerHTML) + (Number(document.getElementById("minutes").innerHTML) * 60); 

虽然你可能会更好,只是在你打勾计时器时更新值。

单挑,setInterval不精确,不能保证每1000ms精确调用一次。

编辑--- 这里是一个小提琴,可以帮助你https://jsfiddle.net/ftp1Lsjt/

var sec = 0; 
 

 
function pad(val) { 
 
    return val > 9 ? val : "0" + val; 
 
} 
 
var timer = setInterval(function() { 
 
    document.getElementById("seconds").innerHTML = pad(++sec % 60); 
 
    document.getElementById("minutes").innerHTML = pad(parseInt(sec/60, 10)); 
 
    {if ($("#character").is(':hidden')) 
 
{  
 
//clearInterval(timer); 
 
document.getElementById('score').value = Number(document.getElementById("seconds").innerHTML) + (Number(document.getElementById("minutes").innerHTML) * 60); 
 
}} 
 
}, 1000); 
 

 
setTimeout(function() { 
 
    clearInterval(timer); 
 
}, 60000);
#character{ 
 
    display:none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script> 
 
<div id='seconds_wrap'> 
 
<span id='seconds'></span> Seconds 
 
</div> 
 
<div id='minutes_wrap'> 
 
<span id='minutes'></span> Minutes 
 
</div> 
 
<div id='character'> 
 

 
</div> 
 
<form action="kayit.php"> 
 
    Ismini gir : <input type="text"> 
 
    <input id="score" type="hidden" value="I want that value changed dynamically as second." > 
 
    <input type="submit" value="Onayladim"> 
 
    </form>

+0

它给零每次我显示的值,我挂的是价值,一个PHP页面得分,但它每次给出0。我怎样才能每秒自动更新它?我需要php或js吗?我觉得它与Ajax协同工作?顺便说一句,我是新来的Ajax,但希望我会学到一些东西。谢谢。 –

+0

如果你正在寻找更新单个页面上的分数,你会用Javascript来做到这一点。如果你需要在服务器端反映这个状态,你可能会想用ajax把更新后的值发布到服务器上。如果不了解代码的环境和目标,我恐怕不能提供更多的见解。 – dgeare

+0

谢谢,我解决了我的问题。 –