无法调用Javascript方法

时间:2016-02-29 12:51:55

标签: 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++)
    {
        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;
    }
  }

在html中,我通过textbox t1的onfocus属性调用代码,这里是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 个答案:

答案 0 :(得分:1)

row&#34; + j +&#34; val - 这对于javascript

是不正确的

答案 1 :(得分:0)

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

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

你也可以使用evalthis[row"+j+"val] += x做类似的事情,但我认为没有必要在这里使用与普通数组不同的任何东西。