我試圖用單選按鈕的集合來設置一個簡單的Vue實例。目標是,如果用戶點擊已經選中的單選按鈕,它將取消選中相應的單選按鈕。但我不能用Vue做這個。這裏是我到目前爲止的代碼:取消選中單選按鈕
HTML:
<div id="app">
<div v-for="(val, key) in list">
<input type="radio" name="radio" :value="val" v-model="selected" :id="val">
<label :for="val" @click="uncheck(val)">{{ val }}</label>
</div>
<button @click="uncheckAll">Uncheck all</button>
</div>
JS:
var app = new Vue({
el: '#app',
data : {
list: [ 'one', 'two', 'three' ],
selected: 'two',
},
methods : {
uncheck: function(val){
console.log(val, this.selected);
if (val == this.selected){
this.selected = false;
}
},
uncheckAll: function(){
this.selected = false;
}
}
})
好像uncheck
方法被調用,但隨後的單選按鈕觸發change
事件,然後更新該值再次selected
。 uncheckAll
方法按預期工作,可能是因爲它沒有綁定到使用v-model
的數據。
任何提示或建議,使其工作?這是我在這個例子中創建了一個筆:https://codepen.io/diegoliv/pen/JrPBbG
完美!兩個實現都很好。我現在第一次提出了一些建議,因爲我的實際實現比我在這裏展示的示例稍微複雜一些,並且使用兩個變量和輔助方法使事情變得更簡單。謝謝! –