<HTML>
<HEAD>
<TITLE></TITLE>
<script language=javascript>
  function fmt(obj){
    obj.value = (obj.value != "")?fmtNumber(obj.value*1, 6):""
    document.all.num.innerText = fmtNumber(txt1.value*1 + txt2.value*1 + txt3.value*1 , 6)
  }
  function numCheck(obj)
  {
      var s = String.fromCharCode(event.keyCode)
      if (s == ".")
      {
        if (obj.value.indexOf(".")>-1)
          return false
        else
          return true
      }
      if (s=="-")
      {
        if (obj.value.indexOf("-")>-1)
          return false
        
        if (getCurPosition(obj)!=0)
        {
          return false
        }
        else
          return true
      }
  
      return !isNaN(s)
  }
  
  //some code from meizz's files
  function getCurPosition(obj)
  {
    var len = obj.value.length
    var pos = 0
    var rng=document.selection.createRange();
    rng.moveEnd("character",len);
    try{
      pos=len-rng.text.length
    }catch(e){}
    return pos
  } </script>
<script language="VBScript">
Function fmtNumber(num, n)
fmtNumber = FormatNumber(num, n, 0, 0, 0)
End Function
</script>
</HEAD>
<BODY>
<input name="txt1" value="" style="imeMode:disabled" onfocusout=fmt(this) onkeypress="return numCheck(this)">
<input name="txt2" value="" style="imeMode:disabled" onfocusout=fmt(this) onkeypress="return numCheck(this)">
<input name="txt3" value="" style="imeMode:disabled" onfocusout=fmt(this) onkeypress="return numCheck(this)">
<div id="num"></div>
</BODY>
</HTML>

解决方案 »

  1.   

    改一下fmt()
    ----------------------
    function fmt(obj){
      obj.value = (obj.value != "")?fmtNumber(obj.value*1, 6):""
      if (txt1.value!="" && txt2.value!="" && txt3.value!="")
        document.all.num.innerText = fmtNumber(txt1.value*1 + txt2.value*1 + txt3.value*1, 6)
    }
      

  2.   

    sorry
    ----------------------
    function fmt(obj){
      obj.value = (obj.value != "")?fmtNumber(obj.value*1, 6):""
      if (txt1.value!="" || txt2.value!="" || txt3.value!="")
        document.all.num.innerText = fmtNumber(txt1.value*1 + txt2.value*1 + txt3.value*1, 6)
    }
      

  3.   

    <script language=javascript>
    function check()
    {
    var num1=document.all.num1.value;
    var num2=document.all.num2.value;
    var num3=document.all.num3.value;
    re=/^\d*\.*\d{0,6}$/g
    if(num1.match(re)==null)
    {
    alert(num1不匹配);
    }
    if(num2.match(re)==null)
    {
    alert(num2不匹配);
    }
    if(num3.match(re)==null)
    {
    alert(num3不匹配);
    }
    var num4=parseFloat(num1)+parseFloat(num2)+parseFloat(num3);
    document.all.haha.innerHTML=num4;
    }
    </script>
    <input type="text" name="num1" value="0" onblur=check()>
        <br/>
        <input type="text" name="num2" value="0" onblur=check()>
        <br/>
        <input type="text" name="num3" value="0" onblur=check()>
        <br/>
        <div id=haha>&nbsp;</div>
      

  4.   

    <script>
      function f(){
        if(!isfloat(num1.value)) num1.value=0;  //输入错误自动归0
        if(!isfloat(num2.value)) num2.value=0;
        if(!isfloat(num3.value)) num3.value=0;
        var m1=parseFloat(num1.value);
        var m2=parseFloat(num2.value);
        var m3=parseFloat(num3.value);
        total.innerText=m1+m2+m3;
      }
     function isfloat(str){
       var reg=/^(\+|\-)?(\d)+(\.)?(\d){0,6}$/g;  //限制6位
       return reg.test(str);
     }
    </script><input type="text" name="num1" value="0" onblur="f();">
        <br/>
        <input type="text" name="num2" value="0" onblur="f();">
        <br/>
        <input type="text" name="num3" value="0" onblur="f();">
        <br/>
       显示计算结果<label id="total">num</label>
      

  5.   

    不得已再改一下
    ------------------------
    <HTML>
    <HEAD>
    <TITLE></TITLE>
    <script language=javascript>
      function fmt(obj){
        obj.value = (obj.value != "")?fmtNumber(obj.value*1, 6):""
        if (txt1.value!="" || txt2.value!="" || txt3.value!="")
          document.all.num.innerText = fmtNumber(txt1.value*1 + txt2.value*1 + txt3.value*1, 6)
      }  function numCheck(obj)
      {
        var s = String.fromCharCode(event.keyCode)
        if (s == ".")
        {
          if (obj.value.indexOf(".")>-1)
            return false
          else
            return true
        }
        if (s=="-")
        {
          if (obj.value.indexOf("-")>-1)
            return false
          
          if (getCurPosition(obj)!=0)
          {
            return false
          }
          else
            return true
        }
        if (s==" ")
          return false
      
        return !isNaN(s)
      }
      
      //some code from meizz's files
      function getCurPosition(obj)
      {
        var len = obj.value.length
        var pos = 0
        var rng=document.selection.createRange();
        rng.moveEnd("character",len);
        try{
          pos=len-rng.text.length
        }catch(e){}
        return pos
      }</script>
    <script language="VBScript">
      Function fmtNumber(num, n)
       fmtNumber = FormatNumber(num, n, 0, 0, 0)
      End Function
    </script>
    </HEAD>
    <BODY>
    <input name="txt1" value="" style="ime-mode:disabled" onfocusout=fmt(this) onkeypress="return numCheck(this)">
    <input name="txt2" value="" style="ime-mode:disabled" onfocusout=fmt(this) onkeypress="return numCheck(this)">
    <input name="txt3" value="" style="ime-mode:disabled" onfocusout=fmt(this) onkeypress="return numCheck(this)">
    <div id="num"></div>
    </BODY>
    </HTML>