首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择带有自定义标签的单选按钮

选择带有自定义标签的单选按钮
EN

Stack Overflow用户
提问于 2021-06-23 00:50:32
回答 1查看 31关注 0票数 0

我有一系列的颜色。我想用它们来选择文本的颜色。我使用单选按钮,因为我只想选择一个。我使用标签自定义了默认的无线功能。我遇到的问题是,收音机只选择一个,而我的标签可以选择多个。我怎么才能修复它?这很难理解,所以这是关于我的问题的图片

代码语言:javascript
复制
<div class="d-flex align-items-center flex-wrap mb-7">
        <span class="w--26 flex-fixed pe-3 mb-5">{{
          $t('setting.setting_theme.title_background')
        }}</span>
        <div v-for="color in list_colors" :key="color.id" class="me-5 mb-5">
          <input
            :v-model="color.checked"
            type="radio"
            class=""
            :id="color.id"
            name="selectTitleBackground"
            @click="color.checked = !color.checked"
          />
          <label
            class="w--8 h--8 flex-center cursor-pointer border"
            :for="color.id"
            :style="{ backgroundColor: color.value }"
            ><i
              v-if="color.checked"
              :class="{ 'text-dark': color.value == '#fff' }"
              class="fal fa-check text-light"
            ></i
          ></label>
        </div>
      </div>

enter image description here

EN

回答 1

Stack Overflow用户

发布于 2021-06-23 01:20:18

在输入上使用的模型是color.checked。此color对象来自v-for="color in list_colors"。因此,检查输入就是更改每个单独的颜色对象。您需要使用数据属性来存储选中的颜色:

代码语言:javascript
复制
data() {
    return {
        selectedColorId: 1
    }
}


<input
   :v-model="selectedColorId"
   type="radio"
   :id="color.id"
   :value="color.id"
   name="selectTitleBackground"
/>

您也不需要输入上的click事件,因为这应该由输入绑定来处理。https://vuejs.org/v2/guide/forms.html#Radio

以及添加勾号图标:

代码语言:javascript
复制
<i v-if="color.id === selectedColorId"
    :class="{ 'text-dark': color.value == '#fff' }"
    class="fal fa-check text-light"
></i>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68087725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档