Celsius = (fDegrees - 32) * 5 / 9<br>
<form name=frm>摄氏度<input name=c onblur="changeDegree('c');"><br>
华氏度<input name=f onblur="changeDegree('f');"><br>
</form>
<script language=javascript>
function changeDegree(a)
{ //输入验证略
if(a=="c")
{
if(frm.c.value=="") frm.f.value="";
else
{ if(frm.c.value!=roundFun((frm.f.value-32)*5/9,4))
frm.f.value=roundFun(frm.c.value*9/5+32,4);
}
return true;
}
else
{
if(frm.f.value=="") frm.c.value="";
else
{if(frm.f.value!=roundFun(frm.c.value*9/5+32,4))
frm.c.value=roundFun((frm.f.value-32)*5/9,4);
}
return true
}
}function roundFun(numberRound,roundDigit) //四舍五入,保留位数为roundDigit
{
with(Math){
return round(numberRound*pow(10,roundDigit))/pow(10,roundDigit);
}
}</script>
<form name=frm>摄氏度<input name=c onblur="changeDegree('c');"><br>
华氏度<input name=f onblur="changeDegree('f');"><br>
</form>
<script language=javascript>
function changeDegree(a)
{ //输入验证略
if(a=="c")
{
if(frm.c.value=="") frm.f.value="";
else
{ if(frm.c.value!=roundFun((frm.f.value-32)*5/9,4))
frm.f.value=roundFun(frm.c.value*9/5+32,4);
}
return true;
}
else
{
if(frm.f.value=="") frm.c.value="";
else
{if(frm.f.value!=roundFun(frm.c.value*9/5+32,4))
frm.c.value=roundFun((frm.f.value-32)*5/9,4);
}
return true
}
}function roundFun(numberRound,roundDigit) //四舍五入,保留位数为roundDigit
{
with(Math){
return round(numberRound*pow(10,roundDigit))/pow(10,roundDigit);
}
}</script>
1.输入33华氏度,blur一下(得到摄氏度值);
2.再点击华氏度输入区,
3.点击摄氏度输入区,点0.5556里5与6的位置
4.可以看到光标不是停在5与6的位置,而是在6后面出现一下,又跑最前面去了(即0的前面)谢谢
另:我的IE是5.0版的
是因为你的两个input的blur事件互相影响的原因..
你反过来来做一遍应该可以看到同样的效果.
你应该使用onchange事件或onpropertychange来做这个..
<form name=frm>摄氏度<input name=c onblur="changeDegree('c');"><br>
华氏度<input name=f onblur="changeDegree('f');"><br>
</form>
<script language=javascript>
function changeDegree(a)
{ //输入验证略
if(a=="c")
{
if(frm.c.value=="") frm.f.value="";
else
{
if((frm.c.value!=roundFun((frm.f.value-32)*5/9,4))&&(frm.f.value!=roundFun(frm.c.value*9/5+32,4)))
{
frm.f.value=roundFun(frm.c.value*9/5+32,4);
}
}
return true;
}
else
{
if(frm.f.value=="") frm.c.value="";
else
{
if((frm.c.value!=roundFun((frm.f.value-32)*5/9,4))&&(frm.f.value!=roundFun(frm.c.value*9/5+32,4)))
{
frm.c.value=roundFun((frm.f.value-32)*5/9,4);
}
}
return true
}
}function roundFun(numberRound,roundDigit) //四舍五入,保留位数为roundDigit
{
with(Math){
return round(numberRound*pow(10,roundDigit))/pow(10,roundDigit);
}
}</script>
</body>