2011-03-25 16 views
0

我有一個複選框,用按鈕 切換,但我也需要將其值添加到方程中,只有當它被選中。 我得到了什麼,現在是這樣的,但它只是添加不管複選框是否被選中或不調用複選框,只有選中

<html> 
<head> 
<script language=javascript> 
function validate(chk){ 
    if (chk.checked == 1) 
    chk.checked = 0; 
    else 
    chk.checked = 1; 
} 
</script> 

<meta http-equiv="Content-Type" content="text/html;charset=utf-8"> 
</head> 
<body> 
<form name="myform"> 
<input type="checkbox" name="ghj" id="ghj" value="100000">testing sheep<br> 
<input type="button" class="button-primary widget-control-save" name="Check_All" value="Check All" onmouseout="compute(this.form)" onClick="validate(ghj)"> 
<input type="text" id="rslt" name="rslt"> 
</form> 
<script type="text/javascript"> 
<!-- hide this script from old browsers 
function compute(form) 
{ 
var test = parseInt(document.getElementById('ghj').value, 10) || 0; 
f = (test + 10); 

document.getElementById('rslt').value = f; 
} 

// done hiding from old browsers --> 
</script> 
</body> 
</html> 

if ... else語句可以工作,但如果我有一個較長的形式,這將意味着數百可能性,我想更有效的方式..

+0

......從哪裏開始... – mVChr 2011-03-25 07:29:11

+0

對不起,如果它的有點混亂,我不知道該怎麼解釋,否則 – jackson5 2011-03-25 07:49:00

+0

你試圖檢查點擊「全部檢查」按鈕時是否檢查複選框,併爲等式添加一些值? – 2011-03-25 07:55:28

回答

1

如果您只想計算選中的複選框。然後做這樣的事情

function compute(frm){ 
    var test = 0; 
    for(var i = 0; i < frm.elements.length; i++){ 
     if(frm.elements[i].type == 'checkbox'){ 
      if(frm.elements[i].checked){ //Do something if checkbox is checked 
       test += parseInt(frm.elements[i].value); 
      } 
     } 
    } 
    document.getElementById('rslt').value = test; 

}

見示例代碼jsfiddle.net/5u5TH

+0

非常感謝!並感謝您提供小提琴......它完美的工作! – jackson5 2011-03-25 18:16:19

+0

我很高興這可以幫助你.. – ace 2011-03-26 02:49:26

1

我花了一些時間來找出你問什麼,但我想你想要做這樣的事情:

function compute(form) 
{ 
    var checkbox = document.getElementById('ghj'); 
    if(checkbox.checked) { 
    var test = parseInt(checkbox.value, 10) || 0; 
    f = (test + 10); 
    document.getElementById('rslt').value = f; 
    } 
} 
+0

是的,但如果我有一個長表格?那麼將會有數百種可能性! – jackson5 2011-03-25 07:48:18

+0

你想解決一個特定的問題,或者你只是在修補?我很難想象這可能會是什麼目的,更不用說這種有數百種可能性的較長版本了。什麼樣的可能性? – 2011-03-25 07:54:36

+0

好吧,我創建了一個「構建你自己的計劃」功能,用戶可以在每個選項上單擊「添加」,這將使複選框的值稍後用於生成查詢字符串。同時設置複選框也會更新客戶如果使用上面的計算功能添加該選項時必須支付的總金額。生成的查詢字符串被傳遞給客戶填寫個人詳細信息併發送他的自定義計劃(在隱藏字段中)以及其餘信息的表單。 – jackson5 2011-03-25 08:29:41