text没有onchange事件,用onkeypress吧。

解决方案 »

  1.   

    你的有求还挺高。
    <body>
    <table id="tab1" border="1" height="144" width="494">
    <tr align=center class=tr1>    
    <td  width="50" height="24" align="center">&nbsp;</td>    
    <td  width="70" height="24" align="center">抽样体重</td>    
    <td  width="59" height="24" align="center">公数量</td>    
    <td  width="53" height="24" align="center" bgcolor="#C0C0C0">公比例</td>    
    <td  width="51" height="24" align="center">母数量</td>    
    <td  width="54" height="24" align="center" bgcolor="#C0C0C0">母比例</td>    
    <td  width="54" height="24" align="center">幼数量</td>    
    <td  width="52" height="24" align="center" bordercolor="#000000" bgcolor="#C0C0C0">幼比例</td>    
    </tr>
    <tr align=center>    
    <td>猪</td>    
    <td><input type=text size=8 onblur="checkInput()"></td>    
    <td><input type=text size=7 onblur="checkInput()"></td>    
    <td>&nbsp;</td>    
    <td><input type=text size=6 onblur="checkInput()"></td>    
    <td>&nbsp;</td>    
    <td><input type=text size=6 onblur="checkInput()"></td>    
    <td>&nbsp;</td>    
    </tr>
    <tr align=center>    
    <td>狗</td>    
    <td><input type=text size=8 onblur="checkInput()"></td>    
    <td><input type=text size=7 onblur="checkInput()"></td>    
    <td>&nbsp;</td>    
    <td><input type=text size=6 onblur="checkInput()"></td>    
    <td>&nbsp;</td>    
    <td><input type=text size=6 onblur="checkInput()"></td>    
    <td>&nbsp;</td>    
    </tr>
    <tr align=center>    
    <td>羊</td>    
    <td><input type=text size=8 onblur="checkInput()"></td>    
    <td><input type=text size=7 onblur="checkInput()"></td>    
    <td>&nbsp;</td>    
    <td><input type=text size=6 onblur="checkInput()"></td>    
    <td>&nbsp;</td>    
    <td><input type=text size=6 onblur="checkInput()"></td>    
    <td>&nbsp;</td>    
    </tr>
    <tr align=center>    
    <td width="50" height="21"><input type=button value=合计 onclick="sum()"></td>    
    <td width="70" height="21">&nbsp;</td>    
    <td width="59" height="21">&nbsp;</td>    
    <td width="53" height="21">&nbsp;</td>    
    <td width="51" height="21">&nbsp;</td>    
    <td width="54" height="21">&nbsp;</td>    
    <td width="54" height="21">&nbsp;</td>    
    <td width="52" height="21">&nbsp;</td>    
    </tr>
    </table>
    <script>
    function toNum(str){ //转换数字
     n = parseInt(str);
     if(isNaN(n)) n=0;
     return n;
    }function checkInput(){ // 检查输入,转换为数字
     e=event.srcElement;
     if(e.value.replace(/[0-9]/g,"").length>0){
      alert("只能是数字!");
      e.focus();
      return;
     }
     if(e.parentElement.cellIndex==0) return; // first cell
     calRow(e.parentElement.parentElement.rowIndex);
    }function calRow(rowNum){ // 计算某行数据
         var row = tab1.rows(rowNum);
     var male=  toNum(row.cells(2).firstChild.value);
     var female = toNum(row.cells(4).firstChild.value);
     var child =  toNum(row.cells(6).firstChild.value);
         var s = male + female + child;
     if(s>0){
         row.cells(3).innerText = Math.round(100*male/s) + "%";
         row.cells(5).innerText = Math.round(100*female/s) + "%";
         row.cells(7).innerText = Math.round(100*child/s) + "%";
         }
    }function calCol(n){ //计算列之和
      var s=0;
      for(i=1;i<4;i++)
         s += toNum(tab1.rows(i).cells(n).firstChild.value);
      tab1.rows(4).cells(n).innerText = s;
    }function sum(){  //汇总数据
      calCol(1); //计算1 2 3 6 列数据之和
      calCol(2);
      calCol(4);
      calCol(6);
      //计算总比例 
      row = tab1.rows(4);
      male = toNum(row.cells(2).innerText);
      female = toNum(row.cells(4).innerText);
      baby = toNum(row.cells(6).innerText);
      s = male + female + baby;
      if(s>0){
         row.cells(3).innerText = Math.round(100*male/s) + "%";
         row.cells(5).innerText = Math.round(100*female/s) + "%";
         row.cells(7).innerText = Math.round(100*baby/s) + "%";
      }
    }
    </script>
    </body>
      

  2.   

    哈哈,幸福的打滚!onblur是指焦点离开时触发的事件吗?努力学习!少问问题!
      

  3.   

    onblur亦可改成
    onchange 或
    onpropertychange