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();
});