@Anton8989

Как сделать, чтобы попеременно выделялся только один чекбокс?

Доброго времени суток) Необходимо, чтобы при клике на Второй чекбокс снималась галочка с Первого, и на оборот) Может кто-нибудь помочь) Спасибо) Вот код:
<template lang="pug">
div
  div(v-for='item in items')
    v-checkbox(v-model='item.checked' :label='item.text' :value='item.id' hide-details='')
</template>

<script>
export default {
  data () {
    return {
      checked: true,
      items: [
        {text: 'Первый1', checked: true},
        {text: 'Первый2', checked: false},
      ]
    }
  }
}
</script>
  • Вопрос задан
  • 104 просмотра
Решения вопроса 2
Kozack
@Kozack Куратор тега Vue.js
Thinking about a11y
Ну вот так и закодить:
По клику на второй чекбокс -- снять с первого
И наоборот.

А вообще, использовать type="radio"
Ответ написан
@Anton8989 Автор вопроса
Короче, если кому понадобится)
<template lang="pug">
div
  div(v-for='item in items')
    v-checkbox(v-model='item.checked' :label='item.text' hide-details @click="onClick(item.id)")
</template>

<script>
export default {
  data () {
    return {
      checked: true,
      items: [
        {text: 'Первый1', checked: true, id: 1},
        {text: 'Первый2', checked: false, id: 2},
      ]
    }
  },
  methods: {
    onClick (data) {
      if (this.items.filter(it => it.id === data)[0].checked === true) {
        this.items.filter(it => it.id !== data)[0].checked = false
      }
    }
  }
}
</script>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы