게시판 본문 ASP, ASP.NET, IIS & Script - Read Only

DHTML behavior 와 HTC 를 이용한 SELECT 의 확장
작성자: 박노철
작성일시: 2005-07-29 09:58,  조회수: 3,367
HTC 강좌를 보고 SELECT tag 에 각종 finder method 를 붙이는 HTC 를 만들어봤습
니다. 프로젝트 하다보면 SELECT tag 에서 text로 value 를 찾거나 value로 text를 찾
거나 index 를 찾거나 하는 등등의 일이 은근히 많이 필요한데요, 그럴때 유용하게
써먹을 수 있을 듯 합니다.

사용법은 다음과 같습니다.
<SELECT style="behavior:url(selectfinder.htc)" id="selFinderTest">

selFinderTest.findTextByValue("testText");
selFinderTest.findValueByText("testValue");
소스를 보시면 각종 함수가 있으니 자유롭게 확장해서 사용하세요~
<PUBLIC:COMPONENT>
    <PUBLIC:METHOD NAME="findIndexByValue" />
    <PUBLIC:METHOD NAME="findIndexByText" />
    <PUBLIC:METHOD NAME="findValueByText" />
    <PUBLIC:METHOD NAME="findTextByValue" />
    <PUBLIC:METHOD NAME="selectIndexByText" />
    <PUBLIC:METHOD NAME="selectIndexByValue" />
    <PUBLIC:METHOD NAME="getConcatValues" />
    <PUBLIC:METHOD NAME="getConcatText" />
    <PUBLIC:METHOD NAME="getTextValuePair" />

<SCRIPT language="javascript">
function findIndexByValue(val) {
    for(var i = 0; i < element.length; i++) {
        if(element.options(i).value == val) return i;
    }
    return -1;
}

function findIndexByText(text) {
    for(var i = 0; i < element.length; i++) {
        if(element.options(i).text == text) return i;
    }
    return -1;
}

function findValueByText(txt) {
    try {
        return element.options(this.findIndexByText(txt)).text;
    } catch(e) {
        return null;
    }
}

function findTextByValue(val) {
    try {
        return element.options(this.findIndexByValue(val)).value;
    } catch(e) {
        return null;
    }
}

function selectIndexByValue(val) {
    element.selectedIndex = this.findIndexByValue(val);
}

function selectIndexByText(txt) {
    element.selectedIndex = this.findIndexByText(txt);
}

function getConcatValues(delim) {
    var result = "";
    
    if(delim == null || delim == "") delim = ","
    
    for(var i = 0; i < element.length; i++) {
        result = result + element.options(i).value + delim;
    }
    // 끝에 붙은 delim 을 잘라냄
    return result.substring(0, result.lastIndexOf(delim));    
}

function getConcatText(delim) {
    var result = "";
    
    if(delim == null || delim == "") delim = ","
    
    for(var i = 0; i < element.length; i++) {
        result = result + element.options(i).text + delim;
    }
    // 끝에 붙은 delim 을 잘라냄
    return result.substring(0, result.lastIndexOf(delim));    
}

function getTextValuePair(delim) {
    var result = "";
    
    if(delim == null || delim == "") delim = ",";
    
    for(var i = 0; i < element.length; i++) {
        result = result 
               + element.options(i).text 
               + "=" 
               + element.options(i).value 
               + delim;
    }
    return result.substring(0,result.lastIndexOf(delim));
}
</SCRIPT>
</PUBLIC:COMPONENT>
IP 주소: 165.141.120.133
전체 2 건의 댓글이 존재합니다.

송원석

정말 대단히 감사합니다. 매우 유용하게 참고하도록 하겠습니다. 감사합니다.
2005-07-29 10:17

송원석

그리고 코드는 원본을 훼손하지 않는 범위내에서 가독성을 높이기 위해 제가 나름대로 정리를 조금 하였습니다. 너그러이 양해해주시면 감사드리겠습니다. ^_^
2005-07-29 10:19
전체 2,095 건의 게시물, 84 페이지로 구성된 ASP, ASP.NET, IIS & Script 게시판의 36 페이지입니다.
게시물
1,257

re: EgoCube IE Analysis의 MSHTML 참조에 관하여...

영이

2005-08-04 1,089
1,256

re: EgoCube IE Analysis의 MSHTML 참조에 관하여... [1]

송원석

2005-08-04 3,091
1,255

re: EgoCube IE Analysis의 MSHTML 참조에 관하여...

영이

2005-08-04 1,086
1,254

re: EgoCube IE Analysis의 MSHTML 참조에 관하여...

송원석

2005-08-04 3,115
1,253

re: EgoCube IE Analysis의 MSHTML 참조에 관하여...

영이

2005-08-04 1,033
1,252

re: EgoCube IE Analysis의 MSHTML 참조에 관하여...

송원석

2005-08-04 3,122
1,251

re: EgoCube IE Analysis의 MSHTML 참조에 관하여...

영이

2005-08-08 1,148
1,250

re: EgoCube IE Analysis의 MSHTML 참조에 관하여...

송원석

2005-08-09 3,054
1,249

RSS 부탁 드립니다.

궁금이

2005-08-03 1,027
1,248

re: RSS 부탁 드립니다.

송원석

2005-08-03 2,914
1,247

HTML 입력필드에 값검증 기능을 내장시키자! HTC를 이용한 validator [1]

박노철

2005-07-29 6,343

DHTML behavior 와 HTC 를 이용한 SELECT 의 확장 [2]

박노철

2005-07-29 3,367
1,245

HTCs 에 대한 질문입니다. :)

감성우

2005-07-28 3,212
1,244

re: HTCs 에 대한 질문입니다. :)

송원석

2005-07-28 2,944
1,243

javascript 의 this 에 해당하는 것은 vbscript 에서 무엇인가요?

구나구나

2005-07-27 3,057
1,242

re: javascript 의 this 에 해당하는 것은 vbscript 에서 무엇인가요? [1]

송원석

2005-07-27 3,308
1,241

asp에서 오라클 프로시저 사용법 알고 싶습니다.

궁금이

2005-07-25 3,427
1,240

re: asp에서 오라클 프로시저 사용법 알고 싶습니다.

송원석

2005-07-26 3,390
1,239

쿠키에 대한 질문입니다. [2]

omar

2005-07-21 1,015
1,238

iE 아날라이즈에서요... [1]

정보문

2005-07-21 3,180
1,237

이미지태그의 src 부분만 추출하는 정규식 좀 알려주세요 [1]

강문성

2005-07-20 1,194
1,236

re: 이미지태그의 src 부분만 추출하는 정규식 좀 알려주세요

송원석

2005-07-21 3,888
1,235

정규식에서 And 형태의 연결은 어떻게 하는지요?

리피

2005-07-27 3,202
1,234

re: 정규식에서 And 형태의 연결은 어떻게 하는지요?

송원석

2005-07-27 3,259
1,233

iE 아날라이즈 소스의 일부분입니다.

정보문

2005-07-20 3,289