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>

解决方案 »

  1.   

    yonghengdizhen(秋叶映红了天):
    1.输入33华氏度,blur一下(得到摄氏度值);
    2.再点击华氏度输入区,
    3.点击摄氏度输入区,点0.5556里5与6的位置
    4.可以看到光标不是停在5与6的位置,而是在6后面出现一下,又跑最前面去了(即0的前面)谢谢
      

  2.   

    yonghengdizhen(秋叶映红了天):
    另:我的IE是5.0版的
      

  3.   

    不是版本的问题..
    是因为你的两个input的blur事件互相影响的原因..
    你反过来来做一遍应该可以看到同样的效果.
    你应该使用onchange事件或onpropertychange来做这个..
      

  4.   

    //我本来以为是没有影响的,刚才测试了一下,的确是有影响。逻辑错误,现已改好,谢谢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)))
    {
    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>