-4

我正在用 javascript 制作一个计时器,我有一个表单,用户输入分钟和秒,然后当他们单击提交时运行 getTime() 函数,因此创建了一个时间变量。它将时间变量识别为字符串而不是数字,我得到的是 NaN。如何通过 parsInt() 获取 id 的“mNumbers”和“sNumbers”的值以将它们转换为数字并摆脱 NaN 错误?或者,还有更好的方法?

这是html表单代码:

     <form id="timer" onSubmit="return getTime();">
        <input type="number" name="Mintues" id="mNumber">Minutes <br >
        <input type="number" name="Seconds" id="sNumber">Seconds <br >
        <input type="submit" name="Submit" value="Submit" class="btn">
    </form>

这是我拥有的javascript:

function getTime() {
var minutes= parsInt($('#mNumber').val() * 10000);
var seconds=parsInt($('#sNumber').val() *1000);
var time = minutes + seconds;
return time;
}
4

2 回答 2

2

首先解析字符串parseInt(使用e),然后像乘法一样进行数学运算:

parseInt($('#mNumber').val()) * 10000;

现在,如果有人像09你一样使用 2 位数的时间,在某些浏览器上会得到令人惊讶的结果,所以最好提供基数parseInt(..., 10)...。

就个人而言,我会在最后移动整个数学内容,它更具可读性:

var time = 10000*minutes + 1000*seconds;
于 2013-08-13T20:01:29.443 回答
0
function getTime() {
    var minutes, seconds, time;
    minutes = (parseInt( $('#mNumber').val(), 10) || 0) * 10000;
    seconds = (parseInt( $('#sNumber').val(), 10) || 0) * 1000;
    time = minutes + seconds;
    return time
}
于 2013-08-13T20:10:29.443 回答