Klien telah memberi saya desain yang memiliki menu Opsi Pilihan yang berisi kotak centang bersama dengan nama item sebagai item individual dalam daftar. Apakah ada kemungkinan untuk menambahkan kotak centang di dalam menu Pilih Opsi?
NB: Pengembang perlu menambahkan id sendiri untuk membuat menu efektif, saya hanya perlu kode HTML CSS jika memungkinkan.
javascript
html
css
html-select
Hero Tra
sumber
sumber
Jawaban:
Anda tidak dapat menempatkan kotak centang di dalam elemen pilih tetapi Anda bisa mendapatkan fungsi yang sama dengan menggunakan HTML, CSS dan JavaScript. Berikut adalah solusi kerja yang mungkin. Berikut penjelasannya.
Kode:
Penjelasan:
Pertama kita membuat elemen pilih yang menampilkan teks "Pilih opsi", dan elemen kosong yang menutupi (tumpang tindih) elemen pilih (
<div class="overSelect">
). Kami tidak ingin pengguna mengklik elemen pilih - ini akan menampilkan opsi kosong. Untuk tumpang tindih elemen dengan elemen lain kami menggunakan properti posisi CSS dengan nilai relatif | mutlak.Untuk menambahkan fungsionalitas kita menetapkan fungsi JavaScript yang dipanggil saat pengguna mengklik div yang berisi elemen pilih kita (
<div class="selectBox" onclick="showCheckboxes()">
).Kami juga membuat div yang berisi kotak centang kami dan menatanya menggunakan CSS. Fungsi JavaScript yang disebutkan di atas hanya mengubah
<div id="checkboxes">
nilai properti tampilan CSS dari "tidak ada" menjadi "blok" dan sebaliknya.Solusinya telah diuji di browser berikut: Internet Explorer 10, Firefox 34, Chrome 39. Browser harus mengaktifkan JavaScript.
Informasi lebih lanjut:
Posisi CSS
Cara melapisi satu div di atas div lainnya
http://www.w3schools.com/css/css_positioning.asp
Properti tampilan CSS
http://www.w3schools.com/cssref/pr_class_display.asp
sumber
overselect
div yang berpotensi menyebabkan beberapa masalah dalam antarmuka kompleks yang saya gunakan<option selected hidden>Select an option</option>
. Ini mungkin bukan penggunaan terbaikhidden
tetapi berhasil.Plugin terbaik sejauh ini adalah Bootstrap Multiselect
Inilah DEMO tersebut
sumber
Untuk pendekatan CSS Murni , Anda dapat menggunakan
:checked
selektor yang digabungkan dengan::before
selektor untuk menyebariskan konten bersyarat.Cukup tambahkan kelas
select-checkbox
keselect
elemen Anda dan sertakan CSS berikut:Anda dapat menggunakan karakter unicode lama biasa (dengan enkode hex yang lolos ) seperti ini:
\2610
\2611
Atau jika Anda ingin membumbuinya, Anda dapat menggunakan mesin terbang FontAwesome ini
\f096
\f046
Demo di jsFiddle & Stack Snippets
Tampilkan cuplikan kode
sumber
multiple
atribut membuat<select>
tampilan seperti kotak dan bukan dropdown ...<select multiple>
elemen, jadi itu harus menjadi kasus penggunaan yang dimaksudkan. Pemilih CSS harus spesifik untuk menerapkan kelas itu sehingga Anda memutuskan untuk menggunakan elemen individu dengan menerapkan.select-checkbox
kelasCoba pilih banyak , terutama beberapa item . Tampaknya menjadi solusi yang lebih bersih dan terkelola, dengan banyak contoh. Anda juga dapat melihat sumbernya.
sumber
Saya mulai dari jawaban @vitfo tetapi saya ingin memiliki masukan
<option>
di dalam<select>
daripada kotak centang jadi saya mengumpulkan semua jawaban untuk membuat ini, ada kode saya, saya harap ini akan membantu seseorang.sumber
Versi Vanilla JS alternatif dengan klik di luar untuk menyembunyikan kotak centang:
Saya menggunakan addEventListener daripada onClick untuk memanfaatkan opsi fase menangkap / menggelegak bersama dengan stopPropagation (). Anda dapat membaca lebih lanjut tentang penangkapan / menggelegak di sini: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
Kode lainnya cocok dengan jawaban asli vitfo (tetapi tidak perlu onclick () di html). Beberapa orang telah meminta fungsi ini tanpa jQuery.
Berikut contoh codepen https://codepen.io/davidysoards/pen/QXYYYa?editors=1010
sumber
Anda dapat menggunakan pustaka ini di git untuk tujuan ini https://github.com/ehynds/jquery-ui-multiselect-widget
untuk memulai kotak pilih gunakan ini
dan ketika Anda memiliki data siap di json (dari ajax atau metode apa pun), pertama-tama parsing data & kemudian tetapkan array js ke sana
sumber
Gunakan kode ini untuk daftar kotak centang pada menu opsi.
sumber
dropdown-menu
dengan elemen kotak centang di setiap baris, berikut adalah jawaban untuk meletakkan kotak centang di dropdown BootstrapAnda mungkin memuat file multiselect.js sebelum daftar opsi diperbarui dengan panggilan AJAX sehingga saat eksekusi file multiselect.js ada daftar opsi kosong di sana untuk menerapkan fungsi multiselect. Jadi pertama perbarui daftar opsi dengan panggilan AJAX kemudian mulai panggilan multiselect Anda akan mendapatkan daftar tarik-turun dengan daftar opsi dinamis.
Semoga ini bisa membantu Anda.
Multipilih daftar dropdown dan file js & css terkait
sumber
Anda dapat mencoba Bootstrap-pilih . Ini juga memiliki pencarian langsung!
sumber
Jika Anda ingin membuat beberapa dropdown pilih di halaman yang sama:
Html:
Menggunakan Jquery:
sumber
Hanya tambahkan class create div dan tambahkan class form-control. saya menggunakan JSP, boostrap4. Abaikan c: foreach.
sumber