读书人

请问:js累加代码优化

发布时间: 2012-03-02 14:40:28 作者: rapoo

请教: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="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  objs = document.getElementsByName("jine")    for(i=0;i<objs.length;i++)    {             if(parseFloat(objs[i].value)>0)            {                 t+=parseFloat(objs[i].value);            }             else            {                 t+=0;            }    }    alert("totle="+t);}//--></SCRIPT> 

读书人网 >JavaScript

热点推荐