无法调用Javascript方法
我正在尝试运行以下javascript循环,但它不起作用:无法调用Javascript方法,javascript,html,Javascript,Html,我正在尝试运行以下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+
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;
}
}
行“+j+”val-这对于javascript不正确您应该使用数组而不是
行“+j+”val
。您尝试使用的“动态”变量名语法不存在
例如,您可以使用名为rowval
的数组,并使用rowval[j]+=parseFloat(document.getElementById('p'+i+).value)
对其赋值
您也可以使用
eval
或this[row”+j+“val]+=x
执行类似操作,但我认为没有必要使用与这里的普通数组不同的任何东西。什么??你有很多错误,你想做什么?除了语法错误,你的函数在外循环的第一次迭代中返回true。。。不完全确定您实际想要实现什么。我建议使用数组,而不是硬编码的变量名,因为无法(…)正确访问。请阅读一些JavaScript基本教程。
<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>