日期:2014-05-16  浏览次数:20359 次

请教:js累加代码优化?
最近财务项目中想做个付款单相加的方法,比如发票付款栏目,每个付款栏累加最后得出总和
以下代码为数值累加函数
checkRate函数为判断是否为数字
function addjine(){
var t=0;
var name;
//for(j=1;j<=i;j++){
if(window.myform.jine[0]==null){
t+=0;}
else{
if(checkRate(window.myform.jine[0].value)){
t+=parseFloat(window.myform.jine[0].value);}
else{
t+=0;}}

if(window.myform.jine[1]==null){
t+=0;}
else{
if(checkRate(window.myform.jine[1].value)){
t+=parseFloat(window.myform.jine[1].value);}
else{
t+=0;}}

if(window.myform.jine[2]==null){
t+=0;}
else{
if(checkRate(window.myform.jine[2].value)){
t+=parseFloat(window.myform.jine[2].value);}
else{
t+=0;}}

if(window.myform.jine[3]==null){
t+=0;}
else{
if(checkRate(window.myform.jine[3].value)){
t+=parseFloat(window.myform.jine[3].value);}
else{
t+=0;}}

if(window.myform.jine[4]==null){
t+=0;}
else{
if(checkRate(window.myform.jine[4].value)){
t+=parseFloat(window.myform.jine[4].value);}
else{
t+=0;}}

if(window.myform.jine[5]==null){
t+=0;}
else{
if(checkRate(window.myform.jine[5].value)){
t+=parseFloat(window.myform.jine[5].value);}
else{
t+=0;}}

if(window.myform.jine[6]==null){
t+=0;}
else{
if(checkRate(window.myform.jine[6].value)){
t+=parseFloat(window.myform.jine[6].value);}
else{
t+=0;}}

if(window.myform.jine[7]==null){
t+=0;}
else{
if(checkRate(window.myform.jine[7].value)){
t+=parseFloat(window.myform.jine[7].value);}
else{
t+=0;}}

if(window.myform.jine[8]==null){
t+=0;}
else{
if(checkRate(window.myform.jine[8].value)){
t+=parseFloat(window.myform.jine[8].value);}
else{
t+=0;}}

if(window.myform.jine[9]==null){
t+=0;}
else{
if(checkRate(window.myform.jine[9].value)){
t+=parseFloat(window.myform.jine[9].value);}
else{
t+=0;}}

if(window.myform.jine[10]==null){
t+=0;}
else{
if(checkRate(window.myform.jine[10].value)){
t+=parseFloat(window.myform.jine[10].value);}
else{
t+=0;}}

document.myform.heji.value=t;
}

一共有10栏,本来想用for循环做,但是没能实现,所以只能分别把10个值单独相加,但是代码感觉很冗余,
请问那位可以帮忙精简一下代码,最好用循环做出来,谢谢了

------解决方案--------------------
HTML code

]<HTML>
 
 <BODY>
  <FORM METHOD=POST ACTION="" name="myform">
    <INPUT TYPE="text" NAME="jine"><br>
    <INPUT TYPE="text" NAME="jine"><br>
    <INPUT TYPE="text" NAME="jine"><br>
    <INPUT TYPE="text" NAME="jine"><br>
    <INPUT TYPE="text" NAME="jine"><br>
    <INPUT TYPE="button" name="test" value="add jin" onclick="addjine();">
  </FORM>
 </BODY>
</HTML>
<SCRIPT LANGUAGE="JavaScript">
<!--
function   addjine(){ 
    var   t=0; 
    var   name; 
    for(i=0;i<5;i++)
    { 
        if(document.myform.elements['jine'](i)==null){ 
            t+=0;
        } 
        else
        { 
            if(document.myform.elements['jine'](i).value>0)
            { 
                t+=parseFloat(document.myform.elements['jine'](i).value);
            } 
            else
            { 
                t+=0;
            }
        }
    }
    alert("totle="+t);
}
//-->
</SCRIPT>

------解决方案--------------------
HTML code

 <BODY>
  <FORM METHOD=POST ACTION="" name="myform">
    <INPUT TYPE="text" NAME="jine"><br>
    <INPUT TYPE="te