を使用してsearch feature
から を使用するとselect_all
、一緒に動作しません。検索で変更がなかったかのように「すべて」が選択されますが、検索自体が要素を「非表示」にします。すべてのアイテムのみを選択する必要がありますvisible
他の誰かがこの問題を抱えているか、解決策を知っているかどうか疑問に思っています. 誰かが助けてくれるなら、もう一度ありがとう!
jQuery MultiSelect プラグインの使用: http://loudev.com
これは私が現在使用しているコードです。検索にはquicksearch
jsを利用します
$('.multiSelect').multiSelect({
selectableHeader: "<div><a href='#' id='select-all'>select all</a></div><input type='text' class='search-input form-control' autocomplete='off' placeholder='search' style='margin-bottom:5px'>",
selectionHeader: "<div><a href='#' id='deselect-all'>deselect all</a></div><input type='text' class='search-input form-control' autocomplete='off' placeholder='search' style='margin-bottom:5px'>",
afterInit: function(ms){
var that = this,
$selectableSearch = that.$selectableUl.prev(),
$selectionSearch = that.$selectionUl.prev(),
selectableSearchString = '#'+that.$container.attr('id')+' .ms-elem-selectable:not(.ms-selected)',
selectionSearchString = '#'+that.$container.attr('id')+' .ms-elem-selection.ms-selected';
that.qs1 = $selectableSearch.quicksearch(selectableSearchString)
.on('keydown', function(e){
if (e.which === 40){
that.$selectableUl.focus();
return false;
}
});
that.qs2 = $selectionSearch.quicksearch(selectionSearchString)
.on('keydown', function(e){
if (e.which == 40){
that.$selectionUl.focus();
return false;
}
});
},
afterSelect: function(){
this.qs1.cache();
this.qs2.cache();
},
afterDeselect: function(){
this.qs1.cache();
this.qs2.cache();
}
});
$('#select-all').on('click',function(){
$('.multiSelect').multiSelect('select_all');
return false;
});
$('#deselect-all').on('click',function(){
$('.multiSelect').multiSelect('deselect_all');
return false;
});
デモンストレーション用の jsfiddle: http://jsfiddle.net/b8ygzqca/6/