Javascript 动态表单字段的提取和计算,如何实现?

Javascript 动态表单字段的提取和计算,如何实现?,javascript,forms,field,Javascript,Forms,Field,我有一个动态字段名长度可变的表单,例如,item{n},n可以是1或30,我需要为每个这样的数据行计算qty{n}*price{n}的小计,然后最后求和小计 该表单如下所示: <form> <table name="forInstruction"> <tr><td>... </td> <td>...</td> ... more td </tr> ....

我有一个动态字段名长度可变的表单,例如,item{n},n可以是1或30,我需要为每个这样的数据行计算qty{n}*price{n}的小计,然后最后求和小计

该表单如下所示:

<form>
    <table name="forInstruction">
        <tr><td>... </td> <td>...</td> ... more td </tr>
        ....
    </table>

    <table name="forUserinput"> 
        <tr>
            <td><input type="text" id="item1">,</td> <td><input type="text" id="qty1">,</td> 
            <td><input type="text" id="price1">,</td> <td>fieldX1 t1 </td> ... more td
        </tr> 
        <tr>
            <td><input type="text" id="item2">,</td> <td><input type="text" id="qty2">,</td> 
            <td><input type="text" id="price2">,</td> <td>fieldX2,t2 </td> ... more td
            <td><input type="text" id="item3">,</td> <td><input type="text" id="qty3">,</td> 
            <td><input type="text" id="price3">,</td> <td>fieldX3,t3 </td> ... more td
            ... 
    </table>
    <input type="button" value="Calculate subtotal and total" ... /> 
</form> 
}

但是,请注意:
“引用错误:未定义表单”。怎么会?谢谢。

您还可以为所有要使用的元素指定一个特定的通用
名称
,并使用
getElementsByName
获取它们。像jQuery这样的框架是一个选项还是必须是纯Javascript?是的,谢谢,使用元素似乎是一种方法。对于MDJ,此应用程序未使用jQuery。但是,我收到一个表单错误。
var fQ=0,fP=0; 
st = 0; 
total = 0; 
for (f=0; f < document.qr.elements.length; f++) { 
    if (document.qr.elements[f].name.indexOf('qty')>=0) { 
        // alert(document.qr.elements[f].name + ' ' + document.qr.elements[f].value); 
        fQ = document.qr.elements[f].value; 
        // alert(fQ); 
    } 
    else if (document.qr.elements[f].name.indexOf('priceLabel')>=0) { 
        fP = document.qr.elements[f].value; 
    } 
    // what do we do here?  Or this is not the good way to go? 
} 
 var i = 0, t=0,
      element; 
   while ((element = forms[0].elements['qty' + i])) {
     var subtotal = forms[0].elements['qty' + i] * forms[0].elements['price' + i]; 
         forms[0].elements['total' + i].value = subtotal;
         t = t + parseFloat(subtotal);
         alert(t);
     // ... 
     i++; 
forms[0].elements['totalFinal'].value = t;