bootstrap multiselect (обновление) работает неправильно

Я использую поле списка bootstrap multiselect. Когда пользователь выбирает параметры на multiselect он показывает правильно. Но есть возможность сбросить ранее выбранные параметры. Когда пользователь нажимает на кнопку сброса, автоматически style=display:none добавляется к кнопке раскрывающегося списка, и раскрывающийся список становится невидимым.

Это мой код

$("#button").click(function () {

    $('option', $('.multiselect')).each(function (element) {
        $(this).removeAttr('selected').prop('selected', false);

    });
    $('.multiselect').multiselect('refresh');
});

4 ответов


другие полезные опции:

  1. $('Id').multiselect('refresh'); - обновляет множественный выбор на основе выбранных параметров select.

  2. $('Id').multiselect('destroy'); - отцепляется весь плагин.

  3. buildFilter: создает фильтр.

  4. buildSelectAll : построить selct все.Проверяет, создан ли select all.

  5. $('Id').multiselect('select', ['1', '2', '4']); - выберите все параметры данного ценности.

  6. clearSelection : удаляет все выбранные элементы.

  7. $('Id').multiselect('deselect', ['1', '2', '4']); - отменяет выбор всех параметров заданных значений.

  8. $('Id').multiselect('selectAll', true); - выделяет все видимые параметры.

  9. $('Id').multiselect('deselectAll', true); - отменяет выбор всех вариантов.

  10. $('Id').multiselect('rebuild'); - обновить плагин.

  11. $('Id').multiselect('enable'); включить мультиселект.

  12. $('Id').multiselect('disable'); - отключить множественный.

  13. hasSelectAll: проверяет наличие флажка "выбрать все".

  14. updateSelectAll : обновляет флажок "выбрать все" на основе текущего отображаемого и выбранного флажков.

  15. $('Id').multiselect('updateButtonText'); - обновить текст кнопки и ее название на основе выбранных вариантов.

  16. getSelected() : получить все выбранные параметры.

  17. getOptionByValue(): получает параметр select по его значению.

  18. $('Id').multiselect('dataprovider', options); - предоставленные данные будут использоваться для построения выпадающего списка.

для более подробной информации посетите bootstrap-multiselect


Bootstrap Multiselect терпит неудачу, если вы просто нацелены на класс, как это.

$(".multiselect").multiselect("refresh");

это происходит потому, что есть что-то еще в плагине, который имеет класс "multiselect". Вы должны дать ему знать, что вы хотите нацелиться только на избранных.

следующее сработало для меня.

$("select.multiselect").multiselect("refresh");

то же самое относится к методу "отменить выбор".

$("select.multiselect").multiselect("deselectAll", false);

посмотрите на эту документацию: http://davidstutz.github.io/bootstrap-multiselect/

чтобы отменить выбор опции, используйте это

$('.multiselect').multiselect('deselect', value)

затем вызовите метод refresh

$('.multiselect').multiselect('refresh');

мой подход состоит в том, чтобы уничтожить multiselect и затем повторно инициализировать его. Это сработало для меня. Попробуйте:

    function initMultiSelect(){

      $('#yourMultiselectId').multiselect({
        includeSelectAllOption: true,
        selectAllValue: 'select-all-value'
      });
    }


    $('#button').click(function(e){
        e.preventDefault();
        $('#yourMultiselectId').multiselect('destroy');
        initMultiSelect();
    });