带有开始/停止/重置和用户输入时间的javascript倒计时

标签 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 时它起作用了。但我希望页面接受用户输入。

最佳答案

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

Javascript 与 jQuery

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()">

关于带有开始/停止/重置和用户输入时间的javascript倒计时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25017268/

相关文章:

javascript - Jquery 清除所有选定的选项不起作用

php - joomla/php 中的 jquery 链式搜索过滤器

javascript - 使用 DataTable 固定列未对齐列

c - 如何阻止用户在 C 中输入 char 作为 int 输入

c++ - 使用 Glut 接受键盘输入

r - R 函数的多个相似输入 - 使用列表提供它们的问题

javascript - 如何在ajax调用成功时在div之间导航

javascript - 使用 DocumentFragment 和 innerHTML 通过富文本注释存储 XSS 预防

javascript - 对元素/输入执行 "enter"

jquery - 日期选择器 "Done"按钮未显示在显示按钮栏面板中