select 용 함수 모음

//------------------------------------------select 제어 함수 모음
 function select_all(ta,bool){ //모든 option 선택
 if(!ta){ return; }   
  for(var i=0,m=ta.length;i<m;i++){
   ta.options[i].selected=bool;
  } 
 }
 function select_del(ta){ //선택된 option 삭제(멀티 가능)
 if(ta.selectedIndex == -1){ return; }  
  var ol
  for(var i=ta.length-1,m=0;i>=m;i--){
   if(ta.options[i].selected){
   ol = ta.options[i];
   ta.removeChild(ol);
   }
  } 
  ta.focus();
 }
 function select_copy(ta,ta2){ //선택된 option 복사(멀티 가능)
  if(ta.selectedIndex == -1){ return; }  
  for(var i=0,m=ta.length;i<m;i++){
   if(ta.options[i].selected){
    var ol = ta.options[i];
    var ta_ol=ol.cloneNode(true)
    ta2.appendChild(ta_ol);
   }
  }
  ta.focus();
 }
 function select_remove(ta,ta2){ //선택된 옵션 이동(멀티 가능)
  select_copy(ta,ta2);
  select_del(ta);
 }
 function select_updown_sel(ta,type){ //1,2,3,4(맨위,위,아래,맨아래); //선택된 option 순서 바꾸기(멀티 불가)
 var sel_len = ta.length
 var sel_idx = ta.selectedIndex;
 if(sel_idx==-1){alert('대상을 선택해주세요.'); return;}
 if(type<3 && sel_idx==0 ){ alert('대상이 맨 위에있습니다'); return; }
 if(type>2 && sel_idx==(sel_len-1) ){ alert('대상이 맨 아래에있습니다'); return; }
  switch(type){
  case 1:
  select_goto(ta,sel_idx,0);
  break;  
  case 2:
  select_goto(ta,sel_idx,sel_idx-1);
  break;
  case 3:
  select_goto(ta,sel_idx,sel_idx+1);
  break;
  case 4:
  select_goto(ta,sel_idx,(sel_len-1));
  break;  
  }
 }
 function select_goto(ta,st,ed){
 var ta_num =-1;
 var ol,ta_ol;
 if(st<0 || ed<0 || st >=ta.length  || ed >=ta.length ) return;
  if(st<ed){
   while(st<ed){
   ta_num=st+1;
   ol = ta.options[st].cloneNode(true);
   ta_ol = ta.options[ta_num].cloneNode(true);
   ta.options[ta_num]=new Option(ol.innerHTML,ol.value,false,true);
   ta.options[st]=new Option(ta_ol.innerHTML,ta_ol.value,false,false);   
   st=ta_num;
   }
  }else if(st>ed){
   while(st>ed){
   ta_num=st-1;
   ol = ta.options[st].cloneNode(true);
   ta_ol = ta.options[ta_num].cloneNode(true);
   ta.options[ta_num]=new Option(ol.innerHTML,ol.value,false,true);
   ta.options[st]=new Option(ta_ol.innerHTML,ta_ol.value,false,false);   
   st=ta_num;
   }
  }
 }
댓글
  • No Nickname
    No Comment
  • 권한이 없습니다.
    {{m_row.m_nick}}
    -
목록형 📷 갤러리형
제목
[기본형] HTML (with 부트스트랩5.3 , jquery 3.7, vue.js)
유용한 리눅스(LINUX) 명령어
[공지] 기술 게시판
4.28
4.29
4.30
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.11
5.12
5.13
5.14
5.15
5.16
5.17
5.18
5.19
5.20
5.21
5.22
5.23
5.24
5.25
5.26
5.27
5.28
5.29
5.30
5.31
6.1