具有开始/停止/重置的javascript倒计时以及来自用户的输入时间

时间:2014-07-29 14:01:13

标签: javascript jquery user-input countdown

我基本上希望页面以秒为单位用户输入时间。

之后我希望倒计时在用户按下"开始"按键 "暂停"按下暂停按钮时。 还有一个重置按钮,以便用户可以从头开始倒计时。

这是我到目前为止所得到的:

<script>
var CCOUNT;
            $(document).ready(function(){
            $('#btnct').click(function() {
            CCOUNT = $('#seconds').val();
            cdreset();
            });
var t, count;
function cddisplay() {
  document.getElementById('timespan').innerHTML = count;
};
function countdown() {
    // starts countdown
    cddisplay();
    if (count == 0) {
        // time is up
    } else {
        count--;
        t = setTimeout("countdown()", 1000);
    }
};
function cdpause() {
    // pauses countdown
    clearTimeout(t);
};
function cdreset() {
    // resets countdown
    cdpause();
    count = CCOUNT;
    cddisplay();
};
</script>
<body>
 <form id="frm"> 
  Seconds: 
  <input type="text" id="seconds" name="seconds" value="0" size="2" maxlength="2"/> 
  <br/>
  <input type="button" id="btnct" value="Input"/>
  </form>
<span id="timespan"></span>
<input type="button" value="Start" onclick="countdown()">
<input type="button" value="Stop" onclick="cdpause()">
<input type="button" value="Reset" onclick="cdreset()">
</body>`

但是它不起作用,当我省略了用户输入部分并刚刚初始化了CCOUNT时,它工作了。但我希望页面能够接受用户输入。

1 个答案:

答案 0 :(得分:2)

这有效:http://jsfiddle.net/robschmuecker/XZXLk/

使用jQuery的Javascript

var CCOUNT;
$(document).ready(function () {
    $('#btnct').click(function () {
        CCOUNT = $('#seconds').val();
        cdreset();
    });
});
var t, count;

function cddisplay() {
    document.getElementById('timespan').innerHTML = count;
}

function countdown() {
    // starts countdown
    cddisplay();
    if (count === 0) {
        // time is up
    } else {
        count--;
        t = setTimeout(countdown, 1000);
    }
}

function cdpause() {
    // pauses countdown
    clearTimeout(t);
}

function cdreset() {
    // resets countdown
    cdpause();
    count = CCOUNT;
    cddisplay();
}

HTML:

<form id="frm">Seconds:
    <input type="text" id="seconds" name="seconds" value="0" size="2" maxlength="2" />
    <br/>
    <input type="button" id="btnct" value="Input" />
</form>
<span id="timespan"></span>

<input type="button" value="Start" onclick="countdown()">
<input type="button" value="Stop" onclick="cdpause()">
<input type="button" value="Reset" onclick="cdreset()">