目前,我有以下情形:@單擊上覆選框添加/刪除數據
我有多個複選框,任何一次點擊,它的價值就會被添加到一個數組。如果取消選中該複選框,則需要將該項目再次移出陣列。
selectAddOn(addOnId) {
if (! this.selectedAddOns.includes(addOnId)) {
this.selectedAddOns.push(addOnId);
}
}
下工作,並把它們添加到我的selectedAddOns[]
。但是當複選框再次被選中時,它不會被刪除。當然,我可以只使用else
,但是......
不幸的是,瀏覽器的行爲是,當你點擊一個<label>
,單擊事件將自動在<input>
觸發,所以外層div收到2個事件,從一個標籤,一個來自輸入。我知道我可以通過在<label>
上添加@click.prevent
來解決此問題,但是這樣不會添加我的自定義複選框樣式。
<div @click="selectAddOn(index)" class="col-6" v-for="(addOn, index) in categories[categoryId].addOns">
<label class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input">
<span class="custom-control-indicator"></span>
<span class="custom-control-description">{{ addOn.name }} (+ ${{ addOn.price }})</span>
</label>
</div>
有關如何解決此問題的任何想法?
我總是忘了這種行爲。 >< – Bert
我敢打賭,你永遠不會忘記它。 :) –