【问题标题】:How do you reference a checkbox array name value?您如何引用复选框数组名称值?
【发布时间】:2015-12-21 04:44:02
【问题描述】:

我有一系列复选框和相关的选择列表。如果选中该复选框,我需要获取相应选择选项的值,然后更改总数,但我似乎无法引用该值。这是 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 变量。它一直未定义。谁能看出原因?

或者有没有更好的方法来实现我想要做的事情?

【问题讨论】:

    标签: javascript jquery checkbox multidimensional-array html-select


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      复选框的名称在 HTML 中的方括号之间没有数字。你不应该在你的 JavaScript 中放一个。

      document.getElementsByName('addonR[]') 将为您提供一个(类似数组的)具有该名称的所有元素的 HTML 集合。

      【讨论】:

      • 我面临的问题是引用这个值。必须在这里接受 Wero 的回答,因为它导致我解决了我的问题。
      猜你喜欢
      • 2018-11-11
      • 2011-08-14
      • 2018-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-20
      • 2020-11-15
      • 1970-01-01
      相关资源
      最近更新 更多