1.背景:在公司开发需求中有一个选择颜色的单选框(黑色,白色),每种颜色选择后均支持取消选中,可是el-radio标签不支持取消选中。
2.解决:
方法1:
<el-radio-group v-model="radioColor">
<el-radio :label="'black'" @click.native.prevent="clickitemdataType('black')">黑色</el-radio>
<el-radio :label="'white'" @click.native.prevent="clickitemdataType('white')">白色</el-radio>
</el-radio-group>
clickitemdataType (e) { // e为radio的label值
e === this.radioColor ? this.radioColor = '' : this.radioColor = e
},
方法2:换checkbox,设置max=1即可
<el-checkbox-group v-model="checkList" :max="1">
<el-checkbox label="A"></el-checkbox>
<el-checkbox label="B"></el-checkbox>
</el-checkbox-group>
data () {
return {
checkList: ['A']
}
}
但是用第一个方法会导致样式错乱,需要在css中加入
/deep/ .el-radio:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner {
box-shadow: 0 0 2px 2px #fff !important;
}
这样就会好了!