Bootstrap-multiselect: Masalah dengan deselectAll dan radio multiselect (multiple = false)

Dibuat pada 22 Jan 2015  ·  7Komentar  ·  Sumber: davidstutz/bootstrap-multiselect

Hai,

Ketika saya mencoba untuk menghapus pilihan, multiselect saya, label multiselect diatur ulang dengan benar tetapi ketika saya membuka multiselect saya, tombol radio yang dipilih sebelumnya masih dicentang.
Jika saya tidak salah, saya pikir itu mungkin berasal dari fungsi deselectAll di mana hanya case kotak centang yang ditangani.

Saya telah menambahkan:

var type = this.options.multiple === true ? "kotak centang" : "radio";
Dan saya menggunakan variabel ini di dalam pemilih js (yaitu: $("li input[type='"+type+"']:enabled" ) dan tampaknya berhasil. Ini penting bagi saya karena saya memicu sesuatu pada acara perubahan : ). Jika suatu nilai sudah dipilih, kami tidak dapat mengaktifkan acara perubahan kecuali jika kami memilih opsi lain dan kembali lagi nanti.

bug

Komentar yang paling membantu

Masalah yang sama di sini.
unselectAll tidak berfungsi. Membatalkan pilihan untuk semua opsi hanya berfungsi menggunakan baris berikut:
```js
$('.pilihan saya').val('');
$('.myselect').multiselect('refresh');

Semua 7 komentar

Mungkin terkait dengan #129! Saya akan memeriksa ini, bagaimanapun, seperti yang dinyatakan dalam #129 dan seperti yang saya ingat, sebagian dari masalah ini juga disebabkan oleh perilaku browser.

Jika masalahnya adalah perilaku browser, mungkin setidaknya bisa memilih opsi radio pertama secara default saat kami membatalkan pilihan Semua ?
Dalam hal ini akan sesuai dengan keadaan default pilih di semua browser seperti jika tidak ada yang dipilih terlebih dahulu.

Saya harus melakukan penyegaran: $('#myMS').multiselect('refresh');
untuk menyingkirkan item yang dipilih sebelumnya.

+1
Dalam kasus kami, kami memiliki beberapa dropdown, dan 1 tombol yang menghapus semuanya. Sayangnya, setelah menghapus (menggunakan 'clearSelection()') mereka tidak dapat memilih kembali pilihan sebelumnya (kecuali jika Anda memilih yang lain terlebih dahulu).

Untuk memperbaikinya, saya telah menukar acara 'ubah' dengan acara 'klik'.
Itu memperbaiki masalah, dan juga memperbaiki bug terkait di mana dropdown tidak akan ditutup jika Anda mengklik opsi yang sudah dipilih.

Apakah ada alasan mengapa acara 'ubah' digunakan alih-alih acara 'klik'?
Saya tidak melihat kerugian untuk beralih ke 'klik'.

Tidak yakin apakah acara click mengacaukan dukungan keyboard. Mungkin memeriksanya terlebih dahulu sebelum beralih.

@zephyx apakah solusi yang Anda berikan pernah masuk ke kode sumber dan dirilis karena saya menghadapi masalah yang sama pada tahun 2020 saat menggunakan plugin.

Saya menggunakan berbagai kombinasi .val(''), .multiselect('resfresh'), .multiselect('deselectAll', false), dan .multiselect('updateButtonText') seperti yang disarankan dalam dokumen dan banyak masalah dan meskipun kombinasi tertentu menyelesaikan masalah di sisi browser untuk menghapus tombol radio yang dipilih namun ketika nilai dikirimkan kembali ke server, opsi "default/dipilih" terakhir seperti yang dipilih.

Apa saja rekomendasinya?

Masalah yang sama di sini.
unselectAll tidak berfungsi. Membatalkan pilihan untuk semua opsi hanya berfungsi menggunakan baris berikut:
```js
$('.pilihan saya').val('');
$('.myselect').multiselect('refresh');

Apakah halaman ini membantu?
0 / 5 - 0 peringkat