[JavaScript] input 필드에 대응하는 label 찾기

자바스크립트를 많이 사용하는 곳이라면 아마도 폼에서 값은 전송하기 전에 입력된 값이 올바른지 체크하는

곳이 아닐까 싶다. 나 역시도 이 때 사용하기 위해서 자바스크립트 코드를 짜고 있는데.. 작업을 진행하다보니

input 필드와 그에 대응하는 label 을 찾아야 할 일이 생겼다. 폼에서 값을 체크할 때 어떤 input 필드의 값이

올바르지 않다면 그에 대응하는 label 에서 값을 읽어서 경고창을 띠울 때 사용해야하기 때문이다.

<label for=”mb_id”>회원아이디</label>

<input type=”text” name=”mb_id” id=”mb_id” />

간단히 이런 폼의 필드가 이런 식으로 구성되어 있다고 할 때 mb_id 필드에 에러가 있다면 label 태그 안의

“회원아이디” 라는 값을 가져와야 하는 것이다. 그렇게 어려운 것은 아닌데.. 자바스크립트를 잘 몰라서 헤맸다.

function get_label(fld)

{

    var id = fld.getAttribute(“id”);

    var labels = document.getElementsByTagName(“label”);

    var el = null;

    var text = “”;

    for(i=0; i<labels.length; i++) {

        if(id == labels[i].htmlFor) {

            el = labels[i];

            break;

        }

    }

    if(el != null) {

        text = el.innerHTML;

    }

    return text;

}

위 코드처럼 사용하면 문서내 전체 label 태그 중에서 주어진 input 필드에 대응하는 것의 값을 가져올 수 있다.

참고로 label 태그의 for 에 해당하는 값은 htmlFor 를 이용해서 얻을 수가 있다.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.