用单独的结果计算

时间:2014-01-16 23:35:51

标签: javascript php

我无法弄明白:(

尝试了很多组合,只是以错误结束。

我要做的是: - 2行复选框。 第1行包含一个值为的复选框:

<input onclick="clickCh(this)" type="checkbox" name="row1" value="1">

第2行包含一个值为的复选框:

<input onclick="clickCh(this)" type="checkbox" name="row2" value="2">

导致:

<input id="row1" type="text" name="total"> Row one results.
<input id="row2" type="text" name="total"> Row two results.
<input id="total" type="text" name="total"> Row one and two results combined.

我使用的脚本:

var total = document.getElementById("total")
function clickCh(caller){
if(caller.checked){
add(caller)
} else {
subtract(caller)
}
}
function add(caller){   total.value = total.value*1 + caller.value*1}
function subtract(caller){  total.value = total.value*1 - caller.value*1}

脚本本身不是我的,我只是在这个网站上找到它

1 个答案:

答案 0 :(得分:0)

发布的代码只在全局运行时运行时没有错误(不在onload事件或任何其他函数中) - 一个小的更改可以解决这个问题:

var total = document.getElementById("total")
clickCh = function(caller){
if(caller.checked){
add(caller)
} else {
subtract(caller)
}
}
function add(caller){   total.value = total.value*1 + caller.value*1}
function subtract(caller){  total.value = total.value*1 - caller.value*1}

jsFiddle:http://jsfiddle.net/Fwd8J/1/

(更改在第2行 - 将函数分配给变量以确保它进入全局范围。)

更好的方法是将clickCh函数分配给脚本中每个复选框的onclick事件,以免污染全局范围。