html问题 在第一个和第二个单行文本框里输入两个数,第三个文本框在1秒之内会自动计算出两个数的乘积

如题所述

复制我的代码可以运行得正确结果,自己看注释理解逻辑,记得采纳

<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);
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-08-29
这个得用js了,首先得看你会不会js了,随便了解一点js的,都会做,很简单的,原理是:
用文本框失去焦点事件onblur (){你的计算代码};
计算代码里关键就是,获取文本框里的值了用documen.getElementById()来获取,然后计算一下,把结果用document.write();写进去,不过用Jquery来写更简单,
第2个回答  2011-08-29
写一个定时器,每隔一秒去进行运算
首先,在页面引用jquery 如:<script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>
然后:$(document).ready(function() {
window.setInterval("ajaxStatusRequest();",1000);
});
function ajaxStatusRequest(){
var i1 = $('#id1').val();
var i2 = $('#id2').val();
if(i1 != 0 && i2 != 0){
$('#id3').val(i1*i2);
}else{
相对应的逻辑 自己好好想一下吧!
}
}
第3个回答  2011-08-29
<html>
<script>
function checkSum()
{
var alen = document.getElementsById("a");
var blen = document.getElementsById("b");
var clen = document.getElementsById("c");
clen.value = alen.value * blen.value
}
</script>
<input type="text" id="a" >
<input type="text" id="b" onkeyup="checkSum()">
<input type="text" id="c" disabled >
</html>
相似回答