Multi Select Box Plugin - sumoSelect

» front

Multi Select Box Plugin - sumoSelect

사이드 프로젝트를 진행하며 한개의 데이터를 입력 할 때
특정 컬럼이 여러개 들어가야 되는 상황이 있었다.
다양한 방법이 있겠지만 사용자 입장에서 편리한 방법을 생각하다가
select 태그 안에서 여러개의 데이터를 선택 및 검색을 할 수 있으면 좋겠다고 생각했다.
역시나 구글에 검색하니 sumo select 라는 플러그인이 이미 있었다.
select tag 안에서 여러개의 데이터 선택과
초기화, 전체선택, 검색 등 여러가지 기능이 있는데

자세한건 공홈에서 찾아보자 sumoSelect

이용 방법은 비교적 간단하다.

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery.sumoselect/3.4.9/sumoselect.min.css"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.sumoselect/3.4.9/jquery.sumoselect.min.js"></script>

---------------------------------------------------------------
script
$('#book').SumoSelect({
    search: true,
    clearAll:true,
    placeholder: '검색어를 입력해주세요',
});
---------------------------------------------------------------
html

<select id="sumo" multiple></select>
---------------------------------------------------------------


select tag 에 multiple 은 필수가 아니니 참고!
multiple 없을 시 다중 선택 X

여러가지 옵션과 이벤트가 있으니 공홈에서 참고!

옵션

{
    placeholder: 'Select Here',
    csvDispCount: 3,
    captionFormat: '{0} Selected',
    captionFormatAllSelected: ''{0} all selected!'',
    floatWidth: 500,
    forceCustomRendering: false,
    nativeOnDevice: ['Android', 'BlackBerry', 'iPhone', 'iPad', 'iPod', 'Opera Mini', 'IEMobile', 'Silk'],
    outputAsCSV : false,
    csvSepChar : ',', 
    okCancelInMulti: true, 
    isClickAwayOk: false,
    triggerChangeCombined : true,
    selectAll : false,
    selectAllPartialCheck : true,
    search : false,
    searchText : 'Search...',
    searchFn : function(haystack, needle, el){ ... },
    noMatch : 'No matches for "{0}"',
    prefix : '',
    locale :  ['OK', 'Cancel', 'Select All'],
    up : 'false',
    showTitle : 'true',
    max : null,
    renderLi : (li, originalOption) => li,
}


이벤트

// Drop down initialized.
sumo:initialized
// Drop down opening
sumo:opening
// Drop down opened
sumo:opened
// Drop down closing
sumo:closing
// Drop down closed.
sumo:closed
// Drop down unloaded.
sumo:unloaded

$('#sumo').on('sumo:opened', function(sumo) {
    // Do stuff here
    console.log("Drop down opened", sumo)
});