HTML阵列相乘的javascript
问题描述:
HTML代码HTML阵列相乘的javascript
<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;
}
问题是这样的: 在表中第一行正确相乘但第二行不工作....请帮助
答
问题是,您无法单独使用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遍历来获得所需的值。
+0
但我不知道有多少行会在那里它是这样的一些事情 http://www.codemashups.com/source/jquery/jquery-autocomplete-p1/ – user1593373 2012-08-12 12:20:38
你怎么知道第一行是正确的,而第二行是不正确的? – irrelephant 2012-08-12 12:10:16
ID必须是**唯一**!搜索它,这已被解释了很多次。 – 2012-08-12 12:11:19
您不显示id为“item”的元素,因此该函数的第一行将不起作用。 Felix说,这似乎是在一个表行中,所以如果你重复多次使用相同的ID重复它,它将无法正常工作 - '.getElementById()'将只返回第一个(或者,对于某些浏览器,可能是最后一个)。 – nnnnnn 2012-08-12 12:13:30