javascript的一个网页按钮代码

具体说明在这里:http://hi.baidu.com/%B2%CB%C4%F1%B9%FB%B9%FB_/blog/item/474b661785ea5cd17b894... 具体说明在这里:
http://hi.baidu.com/%B2%CB%C4%F1%B9%FB%B9%FB_/blog/item/474b661785ea5cd17b8947fa.html
希望大家帮帮忙!
展开
 我来答
前端报错
2011-11-02 · 前端开发技术分享,分析
前端报错
采纳数:1573 获赞数:7026

向TA提问 私信TA
展开全部
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>功、能和热量单位计量单位换算器</title>

<style>

input{border:1px solid #ccc;padding:4px 8px;}

input.cz,input.hs{background:#f1f1f1;}

</style>

</head>

<body style="font-size:12px;">

<div align="center">

<div id="result">

<table width="600" cellpadding=2 cellspacing=0 style="font-size:12px;">

<tr><td>

<script language="javascript" type="text/javascript">

function HEAT_MEASURES() {

this.Joule = 1

this.Kgm = 0.08598452278

this.Psh = 60.2409638554

this.Hph = 85.98452278

this.Kwh = 3599712.023038157

this.Kcal = 4185.851820846

this.Btu = 1055.0749103

this.Ftlb = 1.3557483731

}

var heat_data = new HEAT_MEASURES();

function checkNum(str) {

for (var i=0; i<str.length; i++) {

var ch = str.substring(i, i + 1)

if (ch!="." && ch!="+" && ch!="-" && ch!="e" && ch!="E" && (ch < "0" || ch > "9")) {

alert("请输入有效的数字");

return false;

}

}

return true

}

function normalize(what,digits) {

var str=""+what;

var pp=Math.max(str.lastIndexOf("+"),str.lastIndexOf("-"));

var idot=str.indexOf(".");

if (idot>=1) {

var ee=(pp>0)?str.substring(pp-1,str.length):"";

digits+=idot;

if (digits>=str.length)

return str;

if (pp>0 && digits>=pp)

digits-=pp;

var c=eval(str.charAt(digits));

var ipos=digits-1;

if (c>=5) {

while (str.charAt(ipos)=="9")

ipos--;

if (str.charAt(ipos)==".") {

var nc=eval(str.substring(0,idot))+1;

if (nc==10 && ee.length>0) {

nc=1;

ee="e"+(eval(ee.substring(1,ee.length))+1);

}

return ""+nc+ee;

}

return str.substring(0,ipos)+(eval(str.charAt(ipos))+1)+ee;

}

else

var ret=str.substring(0,digits)+ee;

for (var i=0; i<ret.length; i++)

if (ret.charAt(i)>"0" && ret.charAt(i)<="9")

return ret;

return str;

}

return str;

}

function compute(obj,val,data) {

if (obj[val].value) {

var uval=0;

uval = obj[val].value*data[val];

if( (uval >= 0) && (obj[val].value.indexOf("-") != -1) ) {

uval = -uval;

}

for (var i in data)

obj[i].value=normalize(uval/data[i],3);

}

}

function resetValues(form,data) {

for (var i in data)

form[i].value="";

}

function resetAll(form) {

resetValues(form,heat_data);

}

</script>

<table class="tb" cellpadding="4" cellspacing="5" width=500 align="center">

<tbody>

<form action="" id="dwhsfrom">

<tr height=10><td colspan=6><p style="text-align:center;font-size:16px;font-weight:bold;">单 位 换 算</p></td></tr>

<tr>

<td align=right nowrap>万大卡(10<sup>4</sup>kal)</td>

<td align=left><input name=Joule size="12" id="Joule"></td>

<td align=left><input class="hs" onClick="if (checkNum(Joule.value)) compute(this.form,Joule.name,heat_data)" type=button value="换算" name=Joule_bt></td>

<td align=right nowrap>千瓦(kw)</td>

<td align=left><input name=Kgm size="12"></td>

<td align=left><input class="hs" onClick="if (checkNum(Kgm.value)) compute(this.form,Kgm.name,heat_data)" type=button value="换算" name=Kgm_bt></td>

</tr>

<tr>

<td align=right nowrap>吨蒸发量</td>

<td align=left><input name=Psh size="12"></td>

<td align=left><input class="hs" onClick="if (checkNum(Psh.value)) compute(this.form,Psh.name,heat_data)" type=button value="换算" name=Psh_bt></td>

<td align=right nowrap>兆瓦(mw)</td>

<td align=left><input name=Hph size="12"></td>

<td align=left><input class="hs" onClick="if (checkNum(Hph.value)) compute(this.form,Hph.name,heat_data)" type=button value="换算" name=Hph_bt></td>

</tr>

<tr height=10><td colspan=6><hr style="border-style: dotted;margin-top:30px;" color=#cccccc size=1 /></td></tr>

<tr>

<td align=center colspan=6><input class="cz" type=button value="数据换算" onclick="dodoStartProcessIt()">    <input class="cz" onClick=resetAll(this.form) type=button value="重置" name=res7></td>

</tr>

</form>

</tbody>

</table>

</td></tr></table>
<script type="text/javascript">
<!--
function dodoStartProcessIt()
{
var Joule = document.getElementById("Joule");
var Kgm = document.getElementById("Kgm");
var Psh = document.getElementById("Psh");
var Hph = document.getElementById("Hph");
if (checkNum(Joule.value)) compute(this.form,Joule.name,heat_data); else {return;}
if (checkNum(Kgm.value)) compute(this.form,Kgm.name,heat_data); else {return;}
if (checkNum(Psh.value)) compute(this.form,Psh.name,heat_data); else {return;}
if (checkNum(Hph.value)) compute(this.form,Hph.name,heat_data); else {return;}
}
//-->
</script>
</body>

</html>
百度网友4551d4945
2011-11-02 · TA获得超过1598个赞
知道小有建树答主
回答量:360
采纳率:0%
帮助的人:470万
展开全部
楼上的测试了吗?你写的不能用,点击报错

我写了个,在LZ原来的基础上增加了一处,改动了一处:

1.将<INPUT class=cz type=button value=数据换算>这个按钮家onclick事件,
改为<INPUT class=cz type=button value=数据换算 onClick="chhs(this.form,Joule,Kgm,Psh,Hph)">

2.在js中加chhs方法:
function chhs(obj,o1,o2,o3,o4) {
if(checkNum(o1.value))
compute(obj,o1.name,heat_data);
if(checkNum(o2.value))
compute(obj,o2.name,heat_data);
if(checkNum(o3.value))
compute(obj,o3.name,heat_data);
if(checkNum(o4.value))
compute(obj,o4.name,heat_data);
}
这样就OK了,经测试可用,自认为已经是最简洁的方案,但不是最完美,因为计算一次后如果想计算第二次就必须把数据先清空,所以仅供LZ参考。
LZ原文中还有报错,大概是for循环引起的,但是不影响功能使用。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
singsin
2011-11-02 · 超过33用户采纳过TA的回答
知道答主
回答量:89
采纳率:0%
帮助的人:86.8万
展开全部
没看清题目,后面的继续
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
卓古龙镶Q3
2011-11-02 · TA获得超过275个赞
知道小有建树答主
回答量:335
采纳率:0%
帮助的人:237万
展开全部
具体代码就不写啦,有个笨方法,判断四个文本框,判断一下如果第一个不为空剩下的全为空,则执行第一个function 下面的类似,你可以试试,你明白的话我们可以再交流一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式