메뉴 건너뛰기

tnt_lang

// ===================================================================
// Author: Matt Kruse <matt@mattkruse.com>
// WWW: http://www.mattkruse.com/
//
// NOTICE: You may use this code for any purpose, commercial or
// private, without any further permission from the author. You may
// remove this notice from your final code if you wish, however it is
// appreciated by the author if at least my web site address is kept.
//
// You may *NOT* re-distribute this code in any way except through its
// use. That means, you can include it in your product, or your web
// site, or any other form where the code is actually being used. You
// may not put the plain javascript up on your site for download or
// include it in your javascript libraries for download.
// If you wish to share this code with others, please just point them
// to the URL instead.
// Please DO NOT link directly to my .js files from your site. Copy
// the files to your server and use them there. Thank you.
// ===================================================================

// HISTORY
// ------------------------------------------------------------------
// June 12, 2003: Modified up and down functions to support more than
//                one selected option
/*
DESCRIPTION: These are general functions to deal with and manipulate
select boxes. Also see the OptionTransfer library to more easily
handle transferring options between two lists

COMPATABILITY: These are fairly basic functions - they should work on
all browsers that support Javascript.
*/


// -------------------------------------------------------------------
// hasOptions(obj)
//  Utility function to determine if a select object has an options array
// -------------------------------------------------------------------
function hasOptions(obj) {
        if (obj!=null && obj.options!=null) { return true; }
        return false;
        }

// -------------------------------------------------------------------
// selectUnselectMatchingOptions(select_object,regex,select/unselect,true/false)
//  This is a general function used by the select functions below, to
//  avoid code duplication
// -------------------------------------------------------------------
function selectUnselectMatchingOptions(obj,regex,which,only) {
        if (window.RegExp) {
                if (which == "select") {
                        var selected1=true;
                        var selected2=false;
                        }
                else if (which == "unselect") {
                        var selected1=false;
                        var selected2=true;
                        }
                else {
                        return;
                        }
                var re = new RegExp(regex);
                if (!hasOptions(obj)) { return; }
                for (var i=0; i<obj.options.length; i++) {
                        if (re.test(obj.options[i].text)) {
                                obj.options[i].selected = selected1;
                                }
                        else {
                                if (only == true) {
                                        obj.options[i].selected = selected2;
                                        }
                                }
                        }
                }
        }
                
// -------------------------------------------------------------------
// selectMatchingOptions(select_object,regex)
//  This function selects all options that match the regular expression
//  passed in. Currently-selected options will not be changed.
// -------------------------------------------------------------------
function selectMatchingOptions(obj,regex) {
        selectUnselectMatchingOptions(obj,regex,"select",false);
        }
// -------------------------------------------------------------------
// selectOnlyMatchingOptions(select_object,regex)
//  This function selects all options that match the regular expression
//  passed in. Selected options that don't match will be un-selected.
// -------------------------------------------------------------------
function selectOnlyMatchingOptions(obj,regex) {
        selectUnselectMatchingOptions(obj,regex,"select",true);
        }
// -------------------------------------------------------------------
// unSelectMatchingOptions(select_object,regex)
//  This function Unselects all options that match the regular expression
//  passed in.
// -------------------------------------------------------------------
function unSelectMatchingOptions(obj,regex) {
        selectUnselectMatchingOptions(obj,regex,"unselect",false);
        }
        
// -------------------------------------------------------------------
// sortSelect(select_object)
//   Pass this function a SELECT object and the options will be sorted
//   by their text (display) values
// -------------------------------------------------------------------
function sortSelect(obj) {
        var o = new Array();
        if (!hasOptions(obj)) { return; }
        for (var i=0; i<obj.options.length; i++) {
                o[o.length] = new Option( obj.options[i].text, obj.options[i].value, obj.options[i].defaultSelected, obj.options[i].selected) ;
                }
        if (o.length==0) { return; }
        o = o.sort(
                function(a,b) {
                        if ((a.text+"") < (b.text+"")) { return -1; }
                        if ((a.text+"") > (b.text+"")) { return 1; }
                        return 0;
                        }
                );

        for (var i=0; i<o.length; i++) {
                obj.options[i] = new Option(o[i].text, o[i].value, o[i].defaultSelected, o[i].selected);
                }
        }

// -------------------------------------------------------------------
// selectAllOptions(select_object)
//  This function takes a select box and selects all options (in a
//  multiple select object). This is used when passing values between
//  two select boxes. Select all options in the right box before
//  submitting the form so the values will be sent to the server.
// -------------------------------------------------------------------
function selectAllOptions(obj) {
        if (!hasOptions(obj)) { return; }
        for (var i=0; i<obj.options.length; i++) {
                obj.options[i].selected = true;
                }
        }
        
// -------------------------------------------------------------------
// moveSelectedOptions(select_object,select_object[,autosort(true/false)[,regex]])
//  This function moves options between select boxes. Works best with
//  multi-select boxes to create the common Windows control effect.
//  Passes all selected values from the first object to the second
//  object and re-sorts each box.
//  If a third argument of 'false' is passed, then the lists are not
//  sorted after the move.
//  If a fourth string argument is passed, this will function as a
//  Regular Expression to match against the TEXT or the options. If
//  the text of an option matches the pattern, it will NOT be moved.
//  It will be treated as an unmoveable option.
//  You can also put this into the <SELECT> object as follows:
//    onDblClick="moveSelectedOptions(this,this.form.target)
//  This way, when the user double-clicks on a value in one box, it
//  will be transferred to the other (in browsers that support the
//  onDblClick() event handler).
// -------------------------------------------------------------------
function moveSelectedOptions(from,to) {
        // Unselect matching options, if required
        if (arguments.length>3) {
                var regex = arguments[3];
                if (regex != "") {
                        unSelectMatchingOptions(from,regex);
                        }
                }
        // Move them over
        if (!hasOptions(from)) { return; }
        for (var i=0; i<from.options.length; i++) {
                var o = from.options[i];
                if (o.selected) {
                        if (!hasOptions(to)) { var index = 0; } else { var index=to.options.length; }
                        to.options[index] = new Option( o.text, o.value, false, false);
                        }
                }
        // Delete them from original
        for (var i=(from.options.length-1); i>=0; i--) {
                var o = from.options[i];
                if (o.selected) {
                        from.options[i] = null;
                        }
                }
        if ((arguments.length<3) || (arguments[2]==true)) {
                sortSelect(from);
                sortSelect(to);
                }
        from.selectedIndex = -1;
        to.selectedIndex = -1;
        }

// -------------------------------------------------------------------
// copySelectedOptions(select_object,select_object[,autosort(true/false)])
//  This function copies options between select boxes instead of
//  moving items. Duplicates in the target list are not allowed.
// -------------------------------------------------------------------
function copySelectedOptions(from,to) {
        var options = new Object();
        if (hasOptions(to)) {
                for (var i=0; i<to.options.length; i++) {
                        options[to.options[i].value] = to.options[i].text;
                        }
                }
        if (!hasOptions(from)) { return; }
        for (var i=0; i<from.options.length; i++) {
                var o = from.options[i];
                if (o.selected) {
                        if (options[o.value] == null || options[o.value] == "undefined" || options[o.value]!=o.text) {
                                if (!hasOptions(to)) { var index = 0; } else { var index=to.options.length; }
                                to.options[index] = new Option( o.text, o.value, false, false);
                                }
                        }
                }
        if ((arguments.length<3) || (arguments[2]==true)) {
                sortSelect(to);
                }
        from.selectedIndex = -1;
        to.selectedIndex = -1;
        }

// -------------------------------------------------------------------
// moveAllOptions(select_object,select_object[,autosort(true/false)[,regex]])
//  Move all options from one select box to another.
// -------------------------------------------------------------------
function moveAllOptions(from,to) {
        selectAllOptions(from);
        if (arguments.length==2) {
                moveSelectedOptions(from,to);
                }
        else if (arguments.length==3) {
                moveSelectedOptions(from,to,arguments[2]);
                }
        else if (arguments.length==4) {
                moveSelectedOptions(from,to,arguments[2],arguments[3]);
                }
        }

// -------------------------------------------------------------------
// copyAllOptions(select_object,select_object[,autosort(true/false)])
//  Copy all options from one select box to another, instead of
//  removing items. Duplicates in the target list are not allowed.
// -------------------------------------------------------------------
function copyAllOptions(from,to) {
        selectAllOptions(from);
        if (arguments.length==2) {
                copySelectedOptions(from,to);
                }
        else if (arguments.length==3) {
                copySelectedOptions(from,to,arguments[2]);
                }
        }

// -------------------------------------------------------------------
// swapOptions(select_object,option1,option2)
//  Swap positions of two options in a select list
// -------------------------------------------------------------------
function swapOptions(obj,i,j) {
        var o = obj.options;
        var i_selected = o[i].selected;
        var j_selected = o[j].selected;
        var temp = new Option(o[i].text, o[i].value, o[i].defaultSelected, o[i].selected);
        var temp2= new Option(o[j].text, o[j].value, o[j].defaultSelected, o[j].selected);
        o[i] = temp2;
        o[j] = temp;
        o[i].selected = j_selected;
        o[j].selected = i_selected;
        }
        
// -------------------------------------------------------------------
// moveOptionUp(select_object)
//  Move selected option in a select list up one
// -------------------------------------------------------------------
function moveOptionUp(obj) {
        if (!hasOptions(obj)) { return; }
        for (i=0; i<obj.options.length; i++) {
                if (obj.options[i].selected) {
                        if (i != 0 && !obj.options[i-1].selected) {
                                swapOptions(obj,i,i-1);
                                obj.options[i-1].selected = true;
                                }
                        }
                }
        }

// -------------------------------------------------------------------
// moveOptionDown(select_object)
//  Move selected option in a select list down one
// -------------------------------------------------------------------
function moveOptionDown(obj) {
        if (!hasOptions(obj)) { return; }
        for (i=obj.options.length-1; i>=0; i--) {
                if (obj.options[i].selected) {
                        if (i != (obj.options.length-1) && ! obj.options[i+1].selected) {
                                swapOptions(obj,i,i+1);
                                obj.options[i+1].selected = true;
                                }
                        }
                }
        }

// -------------------------------------------------------------------
// removeSelectedOptions(select_object)
//  Remove all selected options from a list
//  (Thanks to Gene Ninestein)
// -------------------------------------------------------------------
function removeSelectedOptions(from) {
        if (!hasOptions(from)) { return; }
        for (var i=(from.options.length-1); i>=0; i--) {
                var o=from.options[i];
                if (o.selected) {
                        from.options[i] = null;
                        }
                }
        from.selectedIndex = -1;
        }

// -------------------------------------------------------------------
// removeAllOptions(select_object)
//  Remove all options from a list
// -------------------------------------------------------------------
function removeAllOptions(from) {
        if (!hasOptions(from)) { return; }
        for (var i=(from.options.length-1); i>=0; i--) {
                from.options[i] = null;
                }
        from.selectedIndex = -1;
        }

// -------------------------------------------------------------------
// addOption(select_object,display_text,value,selected)
//  Add an option to a list
// -------------------------------------------------------------------
function addOption(obj,text,value,selected) {
        if (obj!=null && obj.options!=null) {
                obj.options[obj.options.length] = new Option(text, value, false, selected);
                }
        }
번호 제목 글쓴이 날짜 조회 수
78 안드로이드 로그인 세션유지에 관한 연구 구퍼 2011.02.22 17444
77 "지금 보고 있는 웹페이지 창을 닫으려고 합니다..." 안나타나게 하기 file 구퍼 2010.07.30 11355
76 c#으로 만든 asp.net 게시판 file 박상현 2003.12.15 5612
75 select box의 option값 정렬 함수 박상현 2004.09.23 5404
74 weblogic5.1과 ant를 이용하여 EJB개발(내부 개발용) 박상현 2004.06.22 5264
73 자바스크립트로 한글 , 초성 중성 종성 분리 (음소분리) 박상현 2005.05.19 4444
72 PDFBox 0.6.1 - Java PDF Library 운영자 2003.04.15 4234
71 능동적으로 select box의 option값 설정및 삭제 박상현 2005.10.24 4087
70 popup창 띄우는 4가지 방법 운영자 2003.09.24 3923
69 정보를 다시 보내지 않으면....<익스플로러 MsgBox방지법>- mothod:post 하늘과컴 2007.10.13 3623
68 C# 메신저 AicacaServer1.2(서버용)... file 박상현 2003.12.15 3616
67 [javascript]textarea의 내용을 클립보드에 담아 처리하기 박상현 2003.10.09 3613
66 C# 메신저 AicacaClient1.2(클라이언트용) file 박상현 2003.12.15 3553
65 옥션처럼 실시간으로 남은시간 구하기 구퍼 2008.08.11 3505
64 jsp페이지에서 popup창의 depth에 따른 메인 복귀 방법 달리하기... 박상현 2003.10.14 3411
63 프리페어스테이트먼트에 ? 표 자리에 값을 셋팅후 만들어진 SQL 문을 보는 유틸 운영자 2003.09.18 3244
62 RAS암호 시스템의 구현 박상현 2001.10.16 3176
» select box관련 함수들(입력, 수정, 삭제, 정렬등) 박상현 2004.09.23 3139
60 [제로보드]게시물 소스보기 기능추가 운영자 2003.10.09 3103
59 PHP로 문서의 HTML DOM을 손쉽게 가져오자~ file 구퍼 2008.08.14 3002
위로