Computer >> 컴퓨터 >  >> 프로그래밍 >> HTML

HTML DOM isContentEditable 속성 완벽 가이드 – 개념, 문법, 실전 예제

HTML DOM의 isContentEditable 속성은 특정 요소의 콘텐츠가 사용자에 의해 수정 가능한지 여부를 확인하고 그 결과를 불리언(Boolean) 값으로 반환합니다. 이 속성은 contenteditable 전역 속성이 설정된 요소뿐만 아니라, 부모 요소로부터 편집 가능 여부를 상속받은 경우에도 정확한 상태를 알려줍니다.

문법(Syntax)

isContentEditable 속성의 기본 사용 문법은 다음과 같습니다.

HTMLElementObject.isContentEditable

이 속성은 별도의 매개변수 없이 호출하며, 읽기 전용(read-only) 속성이므로 값을 직접 설정할 수는 없습니다.

반환되는 불리언 값

isContentEditable 속성은 아래 표와 같이 두 가지 값을 반환합니다.

반환 값설명
true해당 요소(HTMLElementObject)의 콘텐츠가 편집 가능함을 의미합니다.
false해당 요소(HTMLElementObject)의 콘텐츠가 편집 불가능함을 의미합니다.

예제 코드

다음 예제는 isContentEditable 속성을 활용하여 폼 제출 후 입력 필드의 편집 가능 상태를 확인하고, 이를 기반으로 필드를 비활성화하는 방법을 보여줍니다.

<!DOCTYPE html>
<html>
<head>
<title>isContentEditable</title>
<style>
    form {
        width:70%;
        margin: 0 auto;
        text-align: center;
    }
    * {
        padding: 2px;
        margin:5px;
    }
    input[type="button"] {
        border-radius: 10px;
    }
</style>
</head>
<body>
<form>
<fieldset>
<legend>isContentEditable</legend>
<label for="textSelect">이름:
<input type="text" id="textSelect" contentEditable="true" placeholder="홍길동">
</label><br>
<label for="emailSelect">이메일:
<input type="email" id="emailSelect" placeholder="user@example.com">
</label>
<input type="button" onclick="confirmtext()" value="제출">
<div id="divDisplay"></div>
</fieldset>
</form>
<script>
    var divDisplay = document.getElementById("divDisplay");
    var inputText = document.getElementById("textSelect");
    var inputEmail = document.getElementById("emailSelect");
    divDisplay.textContent = '안내: 제출 후에는 이메일을 수정할 수 없습니다';
    function confirmtext() {
        inputEmail.disabled = !inputEmail.isContentEditable;
        inputText.disabled = !inputText.isContentEditable;
        divDisplay.textContent = '정보가 제출되었습니다';
    }
</script>
</body>
</html>

코드 설명

위 예제에서 이름(name) 입력 필드에는 contentEditable="true" 속성이 설정되어 있어 편집 가능한 상태입니다. 반면 이메일(email) 필드는 일반 입력 필드로, isContentEditable이 false를 반환합니다.

'제출' 버튼을 클릭하면 confirmtext() 함수가 실행됩니다. 이 함수 내부에서 각 입력 필드의 isContentEditable 값을 확인하고, NOT 연산자(!)를 통해 그 결과를 뒤집어 disabled 속성에 할당합니다. 즉, 편집 가능한 필드는 비활성화되고, 이미 편집 불가능한 필드는 그대로 유지됩니다.

실행 결과

위 코드를 실행하면 다음과 같은 결과를 확인할 수 있습니다.

'제출' 버튼 클릭 전:

HTML DOM isContentEditable 속성 완벽 가이드 – 개념, 문법, 실전 예제

'제출' 버튼 클릭 후:

HTML DOM isContentEditable 속성 완벽 가이드 – 개념, 문법, 실전 예제

정리

isContentEditable 속성은 웹 에디터나 폼 유효성 검사처럼 요소의 편집 가능 여부에 따라 동적으로 UI를 제어해야 하는 상황에서 매우 유용합니다. 브라우저 호환성도 뛰어나 대부분의 최신 브라우저에서 안정적으로 사용할 수 있습니다.