2017-05-04 2 views
0

基本的に私はタイマーのJavaScriptコードを持っていますが、それはカウントアップの1つですので、停止してclearInterval(timer)が実行されるとタイマーの値によって入力が隠された状態になります。入力の隠し値をカウント・タイマーの値として動的に設定するにはどうしたらいいですか?

例は次のとおりです。

カウントアップが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

非表示入力の値は、そのvalueプロパティに割り当てることで変更できます。

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

タイマーにチェックを入れると、値を更新する方が良いかもしれませんが、

ヘッドアップ、setIntervalは正確ではなく、正確に1000msごとに呼び出されることは保証されません。ここ

EDIT --- は、それは私が表示さゼロ毎回の値を与えるあなた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

1ページでスコアを更新する場合は、Javascriptでスコアを更新します。その状態をサーバー側に反映させる必要がある場合は、おそらくajaxを使用して、更新された値をサーバーに送信することが必要になります。私は、コードの環境と目標について多くのことを知らないと、それ以上の洞察を提供することはできません。 – dgeare

+0

ありがとう、私は私の問題を解決しました。 –

関連する問題