2017-05-04 48 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

謝謝,我解決了我的問題。 –