0

HTML 代码

<input name="itemCode[]" value="" class="tInput" id="itemCode" tabindex="1"/> </td>
<input name="itemDesc[]" value="" class="tInput" id="itemDesc"  readonly="readonly" /></td>
<input name="itemQty[]" value="" class="tInput" id="itemQty" tabindex="2" onchange="multiply(this)"/></td>
<input name="itemPrice[]" value="" class="tInput" id="itemPrice" readonly="readonly" /> </td>

Javascript代码

function multiply(el) {
   var i= el.value * document.getElementById('itemPrice').value;
   document.getElementById('itemPrice').value =i;
}

问题是这样的:表中的第一行正确相乘,但第二行不起作用....请帮助

4

1 回答 1

1

问题是您无法itemXxxxx单独正确识别行。最好使用一些 id 来识别您所指的“行”。

例如(对于每一行,在这种情况下为第 23 行/项目):

<input id="price23" .....>
<input id="qty23" ......>
<input id="total23" onchange="calc(23);" ...>

功能calc(id)是:

function calc(id)
{

     var p = document.getElementById("price"+id).value;
     var q = document.getElementById("qty"+id).value;
     document.getElementById("total"+id).value = p * q;
}

从某些服务器端代码中注入行号很容易。

编辑:另一种选择是使用 JQuery 在父母和兄弟姐妹之间进行一些 DOM 遍历以获得所需的值。

于 2012-08-12T12:15:00.643 回答