Rumah > hujung hadapan web > View.js > teks badan

Bagaimana untuk melaksanakan kotak lungsur turun berbilang pilihan dalam Vue

WBOY
Lepaskan: 2023-11-07 14:09:17
asal
1878 orang telah melayarinya

Bagaimana untuk melaksanakan kotak lungsur turun berbilang pilihan dalam Vue

Cara melaksanakan kotak lungsur berbilang pilihan dalam Vue

Dalam pembangunan Vue, kotak lungsur ialah salah satu komponen bentuk biasa. Biasanya, kami menggunakan kotak lungsur radio untuk memilih pilihan. Walau bagaimanapun, kadangkala kita perlu melaksanakan kotak lungsur berbilang pilihan supaya pengguna boleh memilih berbilang pilihan pada masa yang sama. Dalam artikel ini, kami akan memperkenalkan cara untuk melaksanakan kotak lungsur turun berbilang pilihan dalam Vue dan memberikan contoh kod khusus.

1. Gunakan perpustakaan komponen UI Elemen
UI Elemen ialah perpustakaan komponen desktop berdasarkan Vue, yang menyediakan set komponen dan alatan UI yang kaya. Dalam UI Elemen, terdapat komponen yang dipanggil Pilih, yang boleh digunakan untuk melaksanakan kotak lungsur. Komponen ini menyokong mod pemilihan berbilang, yang boleh didayakan dengan menetapkan atribut berbilang kepada benar. Berikut ialah contoh mudah:

<el-select v-model="selectedOptions" multiple>
  <el-option v-for="option in options" :key="option.value" :label="option.label" :value="option.value"></el-option>
</el-select>
Salin selepas log masuk
data() {
  return {
    options: [
      { value: 'option1', label: '选项1' },
      { value: 'option2', label: '选项2' },
      { value: 'option3', label: '选项3' }
    ],
    selectedOptions: []
  };
}
Salin selepas log masuk

Dalam kod di atas, kami menggunakan arahan model v untuk mengikat tatasusunan yang dipilihOptions untuk menyimpan pilihan yang dipilih oleh pengguna. Dengan menetapkan berbilang atribut kepada benar, kotak lungsur boleh menyokong berbilang pilihan.

2. Komponen kotak lungsur berbilang pilihan tersuai
Selain menggunakan perpustakaan komponen yang disediakan oleh UI Elemen, kami juga boleh melaksanakan kotak lungsur berbilang pilihan mengikut keperluan kami sendiri. Berikut ialah kod sampel untuk komponen kotak lungsur berbilang pilihan tersuai:

<template>
  <div class="dropdown" @click="toggleDropdown">
    <div class="selected-options">
      <span v-if="selectedOptions.length === 0">请选择...</span>
      <span v-else>
        <span v-for="option in selectedOptions" :key="option.value">
          {{ option.label }}
          <span class="remove" @click.stop="removeOption(option)">&#10006;</span>
        </span>
      </span>
    </div>
    <div class="dropdown-list" v-show="showDropdown">
      <span v-for="option in options" :key="option.value" @click="toggleOption(option)">
        <input type="checkbox" :value="option.value" :checked="isChecked(option)">
        {{ option.label }}
      </span>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      options: [
        { value: 'option1', label: '选项1' },
        { value: 'option2', label: '选项2' },
        { value: 'option3', label: '选项3' }
      ],
      selectedOptions: [],
      showDropdown: false
    };
  },
  methods: {
    toggleDropdown() {
      this.showDropdown = !this.showDropdown;
    },
    toggleOption(option) {
      if (this.isSelected(option)) {
        this.removeOption(option);
      } else {
        this.addOption(option);
      }
    },
    isSelected(option) {
      return this.selectedOptions.some(selectedOption => selectedOption.value === option.value);
    },
    addOption(option) {
      if (!this.isSelected(option)) {
        this.selectedOptions.push(option);
      }
    },
    removeOption(option) {
      this.selectedOptions = this.selectedOptions.filter(selectedOption => selectedOption.value !== option.value);
    },
    isChecked(option) {
      return this.isSelected(option);
    }
  }
};
</script>

<style scoped>
.dropdown {
  position: relative;
  display: inline-block;
}
.selected-options {
  border: 1px solid #aaa;
  padding: 5px;
  cursor: pointer;
}
.dropdown-list {
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  max-height: 200px;
  overflow-y: auto;
  border: 1px solid #aaa;
  background-color: #fff;
  padding: 5px;
}
.remove {
  margin-left: 5px;
  cursor: pointer;
}
</style>
Salin selepas log masuk

Dalam kod di atas, kami menggunakan pembolehubah selectedOptions untuk menyimpan pilihan yang dipilih oleh pengguna. Kembangkan atau runtuhkan kotak lungsur dengan mengklik sebahagian daripada bekas kotak lungsur, togol keadaan yang dipilih dengan mengklik pada setiap pilihan dan gunakan tatasusunan Pilihan yang dipilih untuk menyimpan pilihan yang dipilih. Kaedah removeOption digunakan untuk mengalih keluar pilihan, dan kaedah isChecked digunakan untuk menentukan sama ada pilihan dipilih. Komponen ini boleh diperkenalkan dan digunakan dalam komponen lain.

Ringkasan
Untuk melaksanakan kotak lungsur turun berbilang pilihan dalam Vue, kami boleh menggunakan komponen Pilih yang disediakan oleh UI Elemen dan menetapkan berbilang atribut kepada benar. Selain itu, kami juga boleh menyesuaikan komponen untuk melaksanakan kotak drop-down berbilang pilihan dan menyesuaikannya mengikut keperluan kami sendiri. Di atas ialah dua kaedah untuk melaksanakan kotak lungsur berbilang pilihan saya harap ia akan membantu anda.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan kotak lungsur turun berbilang pilihan dalam Vue. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!