我无法弄明白:(
尝试了很多组合,只是以错误结束。
我要做的是: - 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}
脚本本身不是我的,我只是在这个网站上找到它
答案 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
事件,以免污染全局范围。