复制我的代码可以运行得正确结果,自己看注释理解逻辑,记得采纳
<script>
var intervalId = 0; //定义计时器
function $(id)
{
return document.getElementById(id);
}
function count()
{
if(typeof(parseInt($("ipt1").value)) != undefined && typeof(parseInt($("ipt2").value)) != undefined)
$("rst").value = parseInt($("ipt1").value) * parseInt($("ipt2").value);
}
function delayToCount()
{
clearInterval(intervalId); //连续按键则清除前一次计时器,最后一次按键后延迟一秒才开始计算
var seconds = 1; //需要延迟的秒数
intervalId = setTimeout("count()",1000*seconds);
}
</script>
<input type="text" value="第一个框" id="ipt1" onkeyup="delayToCount()"/><br>
<input type="text" value="第二个框" id="ipt2" onkeyup="delayToCount()"/><br>
<input type="text" value="结果框" id="rst" />
追问为什么只能计算整数部分啊?
追答改了下答案,加入了无法正确计算值的异常判断,问题解决请记得采纳,谢谢!
var intervalId = 0; //定义计时器
function $(id)
{
return document.getElementById(id);
}
function count()
{
var result = $("ipt1").value * $("ipt2").value; //计算结果
$("rst").value = isNaN(result) ? "无法计算的值" : result; //如果输入不合法,给出无法计算
}
function delayToCount()
{
clearInterval(intervalId); //连续按键则清除前一次计时器,最后一次按键后延迟一秒才开始计算
var seconds = 1; //需要延迟的秒数
intervalId = setTimeout("count()",1000*seconds);
}