【发布时间】:2014-10-26 17:15:07
【问题描述】:
我有材料清单和每种材料的费率。当用户输入材料的数量时,onchange 事件会触发并将材料成本计算为费率*数量。这是我能够做到的。我也想要所有材料成本的总和。我可以通过在 onchange 中添加另一个 javascript 函数作为 onchange="mymultiply(100, 'rate_1','quantity_1');mysummation('cost_1','cost_2',...,'sum_cost')" 来做到这一点。但是如何级联呢?
我希望在数量_1/数量_2 等中的 onchange 更改只读值(cost_1/cost_2 等)时触发 javascript 函数。onchange 仅适用于用户输入。有没有解决办法。
所以示例表单看起来像这样。
<table>
<tr><th>material</th><th>rate</th><th>quantity</th><th>cost</th></tr>
<tr>
<td>Material 1</td>
<td><input type='text' id='rate_1' readonly='true' value='100' /></td>
<td><input type='text' id='quantity_1' onchange="mymultiply('rate_1','quantity_1','cost_1');" /></td>
<td><input type='text' id='cost_1' readonly='true' onchange="mysummation('cost_1','cost_2','cost_3','sum_cost');" /></td>
</tr>
<tr> Row 2 data</tr>
<tr> Row 3 data</tr>
</table>
<input type='text' id='sum_cost' readonly='true' />
Javascript 看起来像这样......
function mymultiply(rate, quantity, cost){
document.getElementById(cost).value=document.getElementById(quantity).value*document.getElementById(rate).value;
}
function mysummation(cost_1, cost_2, cost_3, sum){
document.getElementById(sum).value=document.getElementById(cost_1).value+document.getElementById(cost_2).value+document.getElementById(cost_3).value;
}
【问题讨论】:
-
你的 javacsript 在哪里?
-
什么是cost_1,cost_2...?
-
成本为费率*数量。在上述情况下,cost_1 输入元素将包含数量_1*100。同样 cost_2 等。
-
onchange 事件仅在用户输入内容时发生。问题更多是关于当只读输入中的值被其他一些 javascript 函数(mymultiply)更改时如何触发 javascript 函数(mysummation)。
-
sum_cost 将是通过添加所有成本的总成本。因此 sum_cost=cost_1+cost_2+cost_3。
标签: javascript html