0

我有一系列複選框和關聯的選擇列表。如果複選框被選中,我需要採取相應的選擇選項的值,然後更改總數,但我似乎無法引用此值。下面是HTML代碼的簡化版本:如何引用複選框數組名稱值?

<table> 
<tr> 
    <td> 
     <input type="checkbox" name="checkboxCK[]" id="checkboxAR1" class="check" /> 
    </td> 
    <td> 
     <select name="addonR[]" class="select-colour"> 
      <option value="50">1 ($50)</option> 
      <option value="100">2 ($100)</option> 
      <option value="150">3 ($150)</option> 
      <option value="200">4 ($200)</option> 
     </select> 
    </td> 
</tr> 
<tr> 
    <td> 
     <input type="checkbox" name="checkboxCK[]" id="checkboxAR2" class="check" /> 
    </td> 
    <td> 
     <select name="addonR[]" class="select-colour"> 
      <option value="50">1 ($50)</option> 
      <option value="100">2 ($100)</option> 
      <option value="150">3 ($150)</option> 
      <option value="200">4 ($200)</option> 
     </select> 
    </td> 
</tr> <tr> 
    <td> 
     <input type="checkbox" name="checkboxCK[]" id="checkboxAR3" class="check" /> 
    </td> 
    <td> 
     <select name="addonR[]" class="select-colour"> 
      <option value="50">1 ($50)</option> 
      <option value="100">2 ($100)</option> 
      <option value="150">3 ($150)</option> 
      <option value="200">4 ($200)</option> 
     </select> 
    </td> 
</tr> 
<table> 
$<span id="theTotalAmount">150</span> 

和JavaScript代碼:

$("input.check:checkbox").click(function(){ 

//run through allcheckboxes that are checked and pull corresponding select option value  
for (var i = 0; i < document.getElementsByName('checkboxCK[]').length; i++) 
{ 
    //get the value of the selected option 
    var s = document.getElementsByName('addonR['+i+']'); 
    var theAmount = s.options[s.selectedIndex].value; 
    console.log(theAmount); 

    //check the checkbox is checked and if so add the corresponding select value 
    if(document.getElementsByName('checkboxCK['+i+']').checked) 
    { 
     totalCost = totalCost+document.getElementsByName('addonR['+i+']').value; 
    } 
} 

//rewrite the html for total amount 
document.getElementById("theTotalAmount").innerHTML = totalCost; 

}); 

我奮力引用變量s。它一直是不確定的。任何人都能看到爲什麼

還是有更好的方法來實現我想要做的?

回答

1

var s = document.getElementsByName('addonR[]')[i]; 
3

複選框的名稱在HTML中的方括號之間沒有數字。你不應該把你的JavaScript放在那裏。

​​3210將爲您提供一個具有該名稱的所有元素的(類似數組的)HTML集合。

+0

我面臨的問題是引用此值。在這裏必須接受Wero的答案,因爲它導致我解決了我的問題。 – nematoth

相關問題