2016-02-29 101 views
-2

我试图运行JavaScript环以下,但它不工作:无法调用Javascript方法

function column_total() 
    { 
    alert("In column_total method"); 
    var row1val=0,row2val=0,row3val=0,row4val=0,row5val=7,row6val=0,row7val=0,row8val=0,row9val=0,row10val=0,row11val=0,row12val=0; 
    for(i=1;i<=12;i++) 
    { 
     for(j=i;j<=i;j++) 
     { 
      alert("In j loop"); 
      row"+j+"val += parseFloat(document.getElementById('p'"+i+").value); 
      row"+j+"val += parseFloat(document.getElementById('d'"+i+").value); 
      row"+j+"val += parseFloat(document.getElementById('o'"+i").value); 
      document.getElementById('t1').value=row"+i+"val; 
     } 
     var rowtotalval=row1val+row2val+row3val+row4val+row5val+row6val+row7val+row8val+row9val+row10val+row11val+row12val; 
     return true; 
    } 
    } 

在我打电话通过文本框T1的onfocus属性的代码,这里的HTML是html代码:

<input type="text" name="p1" id="p1"></input> 
<input type="text" name="p2" id="p2"></input> 
<input type="text" name="d1" id="d1" ></input> 
<input type="text" name="d2" id="d2" ></input> 
<input type="text" name="o1" id="o1" ></input> 
<input type="text" name="o2" id="o2" ></input> 
<input type="text" name="t1" id="t1" onfocus="column_total()"></input> 
+2

'for(j = i; j <= i; j ++)' – fcalderan

+0

什么?你有很多错误,你想要做什么? – Alexis

+0

除了语法错误之外,你的函数在外层循环的第一次迭代中返回true ......并不完全确定你实际要完成的工作。 – arthurakay

回答

0

正确的您应该使用数组,而不是row"+j+"val。您尝试使用的这种“动态”变量名称语法不存在。

例如,您可以使用名为rowval的数组并使用rowval[j] += parseFloat(document.getElementById('p'"+i+").value)为其赋值。

您也可以使用evalthis[row"+j+"val] += x做类似的事情,但我没有看到任何需要使用与平凡数组不同的地方。

1

行 “+ J +” VAL - 这是还没有为JavaScript