How to toggle all checkboxes in Bootstrap VueJS?

Hi Friends 👋,

Welcome To SortoutCode! ❤️

To toggle all checkboxes using BootstrapVue.We are going to use the b-form-checkbox component to show the checkbox.

Today I am going to show you How you toggle all checkboxes using BootstrapVue in VueJS?

Table of contains

  • Setup the Vue.js
  • Install the Bootstrap and BootstrapVue
  • Create FirstComponent.vue and import it into App.js
  • Toggle all checkboxes

Let’s start today’s tutorial How do I toggle all checkboxes using BootstrapVue in VueJS?

Setup the Vue.js

First, we have to install the Vue project, I had installed the vueJS in my system. If you haven’t installed or have any problem with installation you can follow this article, which will show you step by step process of installation.

How to Install the VueJS project?

Install the Bootstrap and BootstrapVue

First, we have to install the Vue project, I had installed the vueJS in my system. If you haven’t installed or have any problem with installation you can follow this article, which will show you step by step process of installation. In that article, I had also show you how to install BootstrapVue in your vue.js project step by step.

How to install or configure vue-bootstrap in VueJS?

Create FirstComponent.vue and import it into App.js

Create the new component in the src/components/ components folder. the component name is FirstComponent.vue and imported into the App.js file:

App.js

<template>
  <div id="app">
    <FirstComponent />
  </div>
</template>

<script>
import FirstComponent from "./components/FirstComponent.vue";
export default {
  name: "App",
  components: {
    FirstComponent,
  },
};
</script>

Toggle all checkboxes

To add the checkbox we are going to use the form checkbox <b-form-checkbox> component. these components <b-form-checkbox-group> and <b-form-checkbox> use the bootstrap custom checkbox input to replace the browser default checkbox input.so it is a solid replacement for the default checkbox input. Let’s see the code example:

FirstComponent.js

<template>
  <div id="app">
    <b-form-group>
      <template #label>
        <b>Choose your Days:</b><br />
        <b-form-checkbox
          v-model="allSelected"
          :indeterminate="indeterminate"
          aria-describedby="days"
          aria-controls="days"
          @change="toggleAll"
        >
          {{ allSelected ? "Un-select All" : "Select All" }}
        </b-form-checkbox>
      </template>

      <template v-slot="{ ariaDescribedby }">
        <b-form-checkbox-group
          id="flavors"
          v-model="selected"
          :options="days"
          :aria-describedby="ariaDescribedby"
          name="flavors"
          class="ml-4"
          aria-label="Individual days"
          stacked
        ></b-form-checkbox-group>
      </template>
    </b-form-group>

    <div>
      Selected: <strong>{{ selected }}</strong
      ><br />
      All Selected: <strong>{{ allSelected }}</strong
      ><br />
      Indeterminate: <strong>{{ indeterminate }}</strong>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      days: ["Monday", "Tuesday", "Wednesday", "Friday", "Sunday"],
      selected: [],
      allSelected: false,
      indeterminate: false,
    };
  },
  methods: {
    toggleAll(checked) {
      this.selected = checked ? this.days.slice() : [];
    },
  },
  watch: {
    selected(newValue, oldValue) {
      if (newValue.length === 0) {
        this.indeterminate = false;
        this.allSelected = false;
      } else if (newValue.length === this.flavours.length) {
        this.indeterminate = false;
        this.allSelected = true;
      } else {
        this.indeterminate = true;
        this.allSelected = false;
      }
    },
  },
};
</script>

For now, let’s check the output.

bootstrap vue toggle all checkboxes

All the best 👍.

Follow me on Twitter