0

我无法尝试将此脚本汇总,一方面,所有标记的复选框的值(全部带有名称=“PV”。总和应该是“PV1”),另一方面,手动写入的值在相关的输入数字框中(所有名称为“pvo”。总和应为 PV2)。之后,使用这些值它应该计算其他数字(PB1 和 PB2)。但是它不会返回任何东西。我究竟做错了什么?

<script language="JavaScript" type="text/javascript">
var PV = document.getElementsByName("PV")
var PVO = document.getElementsByName("pvo")
var PV1 = document.getElementById("PV1")
var PV2 = document.getElementById("PV2")
var PB1 = document.getElementById("PB1")
var PB2 = document.getElementById("PB2")

function clickCh(form){calcpv(this.form) ; calcpvo(this.form) ; calculate(this.form)}

function trunc(n){return ~~n; }

function calcpv(form){for(i=0 ; i < PV.length ; i++)
{if(PV[i].checked == true) {PV1.value += Number(PV[i].value)} }}

function calcpvo(form){for(i=0 ; i < PVO.length ; i++)
{PV2.value += Number(PVO[i].value=)} }

function calculate(form){if(PV1>PV2){PB1.value = trunc(10 + (PV1.value*1 - PV2.value*1 -1)/150)}
else {PB1.value = trunc(10 + (PV1.value*1 - PV2.value*1 +1)/150)}; PB2.value = 20 - PB1.value
}


</script>

我的 HTML 代码的相关示例(有许多类似于此的表行)

<td><input type="checkbox" name="PV" value=70>
<input type="checkbox" name="PV" value=70>
<input type="checkbox" name="PV" value=70>
<input type="checkbox" name="PV" value=70></td>
<td><input type="text"></td><td><input type="number" name="pvo"></td></tr>
<input id="PV1" type="text" name="" readonly="readonly">
<input id="PV2" type="text" name="" readonly="readonly">
<input type="button" onclick="clickCh(this.form)" value="calcular"><br>
<input id="PB1" type="text" name="" readonly="readonly">
<input id="PB2" type="text" name="" readonly="readonly"><br>
4

2 回答 2

1

如果你喜欢使用 jQuery,这将是一件容易的事:

$('input[name=PV]:checked').each(function(){

/// do calculation here.

});
于 2013-09-10T20:38:16.097 回答
0

你做错了什么:你似乎引用了一个不存在的数组。

if(PV[i].checked == true)

我相信你的意思是检查这个:

if("PV" + i.checked == true)
于 2013-09-10T19:49:27.650 回答