2014-01-16 53 views
-1

我只是不能想出辦法:(計算與獨立的結果

嘗試了很多的組合,只是在唯一錯誤結束了

我試圖做到這一點的是: - 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

getelementbyid後的冒號? –

+3

我在那裏看不到問題。文中任何地方缺少問號都支持我的理論...... – John3136

+0

-2行復選框? – Brilliand

回答

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:(這種變化是在第2行 - 分配函數的變量保證了它進入了全球範圍內)http://jsfiddle.net/Fwd8J/1/

一個更好的方式來做到這將是分配clickCh功能到腳本中每個複選框的onclick事件,以免污染全局範圍。