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 ответов
другие полезные опции:
$('Id').multiselect('refresh');- обновляет множественный выбор на основе выбранных параметров select.$('Id').multiselect('destroy');- отцепляется весь плагин.buildFilter: создает фильтр.buildSelectAll: построить selct все.Проверяет, создан ли select all.$('Id').multiselect('select', ['1', '2', '4']);- выберите все параметры данного ценности.clearSelection: удаляет все выбранные элементы.$('Id').multiselect('deselect', ['1', '2', '4']);- отменяет выбор всех параметров заданных значений.$('Id').multiselect('selectAll', true);- выделяет все видимые параметры.$('Id').multiselect('deselectAll', true);- отменяет выбор всех вариантов.$('Id').multiselect('rebuild');- обновить плагин.$('Id').multiselect('enable');включить мультиселект.$('Id').multiselect('disable');- отключить множественный.hasSelectAll: проверяет наличие флажка "выбрать все".updateSelectAll: обновляет флажок "выбрать все" на основе текущего отображаемого и выбранного флажков.$('Id').multiselect('updateButtonText');- обновить текст кнопки и ее название на основе выбранных вариантов.getSelected(): получить все выбранные параметры.getOptionByValue(): получает параметр select по его значению.$('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();
});