0
我想創建一個帶複選框的下拉列表,其中下拉列表中的值取決於外部複選框。如何動態地從下拉列表中添加和刪除複選框
這是我目前有。
HTML
<div class="region-checkboxes">
<input type="checkbox" name="na" value="NA" />
<span style="width:25px;display:inline-block;">NA</span>
<input type='checkbox' name="eu" value="EU" />
<span style="width:25px;display:inline-block;">EU</span>
<input type='checkbox' name="apac" value="APAC" />
<span style="width:40px;display:inline-block;">APAC</span>
<input type='checkbox' name="cn" value="CN"/>
<span style="width:25px;display:inline-block;">CN</span>
JS
var allvalue = []
var checkboxes = document.querySelectorAll('.region-checkboxes input');
checkboxes.forEach(function(item) {
item.addEventListener('click', onChangeCheckbox);
});
function onChangeCheckbox (checkbox) {
console.log(checkbox.currentTarget.value);
if (checkbox.currentTarget.checked) {
allvalue.push(checkbox.currentTarget.value);
allvalue.sort();
}
else {
var index = allvalue.indexOf(checkbox.currentTarget.value);
if(index > -1){
allvalue.splice(index,1);
}
}
}
我想要做的是基於選中的複選框,它將填充其他值的複選框下拉列表。在本例中,它將根據您選擇的區域填充子區域。
所以如果您選擇「EU」複選框,如果您選擇「NA」複選框,[「WEU」,「EEU」,「RU」],則下拉列表將填充[「NA」,「LA」 ,如果您同時選擇兩個數組,它將使用兩個數組填充下拉列表。這是我的想法。
http://jsfiddle.net/evfnLn0x/712/
所以,現在的問題是。我不知道如何設置我的代碼,因此它是動態的。當外部複選框被取消選中時,我還需要下拉複選框列表來刪除子區域。我一直在用這個掙扎着。
嗯,當我點擊框時,我沒有看到任何Dropboxes? – user3348557
你運行過上面的代碼片段嗎?當你點擊複選框時,它會顯示下拉菜單! –
我得到這個錯誤:{ 「message」:「TypeError:checkboxes.forEach is not a function」, 「filename」:「http://stacksnippets.net/js」, 「lineno」:66, 「colno」:1 } – user3348557