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

HTML DOM Input Time readOnly 속성 – 사용법과 예제 총정리

HTML DOM의 Input Time readOnly 속성은 시간 입력 필드(<input type="time">)를 사용자가 수정할 수 있는지 여부를 설정하거나 반환하는 속성입니다. 이 속성을 활용하면 자바스크립트만으로 시간 입력란의 편집 가능 여부를 동적으로 제어할 수 있습니다.

문법(Syntax)

readOnly 속성의 기본 문법은 다음과 같습니다.

1. 값 읽기 (boolean 값 반환)

inputTimeObject.readOnly

현재 시간 입력 필드가 읽기 전용 상태인지 여부를 true / false 형태의 불리언 값으로 반환합니다.

2. 값 설정하기

inputTimeObject.readOnly = booleanValue

불리언(Boolean) 값 종류

booleanValue에 사용할 수 있는 값과 그 의미는 아래 표와 같습니다.

booleanValue설명
true시간 입력 필드가 읽기 전용(readOnly) 상태로 설정되어 사용자가 값을 수정할 수 없습니다.
false시간 입력 필드가 읽기 전용이 아니며, 사용자가 값을 자유롭게 수정할 수 있습니다.

예제(Example)

다음은 Input Time readOnly 속성을 활용한 실전 예제입니다. 버튼을 클릭하면 현재 readOnly 상태를 확인하고, 그 결과에 따라 다른 메시지를 화면에 출력합니다.

<!DOCTYPE html>
<html>
<head>
<title>Input Time readOnly</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>Time-readOnly</legend>
<label for="TimeSelect">상사와의 미팅 시간:</label>
<input type="time" id="TimeSelect" value="12:45" readOnly>
<input type="button" onclick="changeMeeting()" value="시간 수정">
<div id="divDisplay"></div>
</fieldset>
</form>
<script>
    var divDisplay = document.getElementById("divDisplay");
    var inputTime = document.getElementById("TimeSelect");
    function changeMeeting() {
        if(inputTime.readOnly === true)
            divDisplay.textContent = '미팅 시간은 변경할 수 없습니다';
        else
            divDisplay.textContent = '확정된 미팅 시간: '+inputTime.value;
    }
</script>
</body>
</html>

실행 결과(Output)

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

'시간 수정' 버튼 클릭 전

HTML DOM Input Time readOnly 속성 – 사용법과 예제 총정리

'시간 수정' 버튼 클릭 후

HTML DOM Input Time readOnly 속성 – 사용법과 예제 총정리

정리

readOnly 속성은 HTML의 readonly 어트리뷰트와 달리 자바스크립트에서 동적으로 읽고 쓸 수 있다는 점이 큰 장점입니다. 예를 들어 특정 조건(관리자 권한, 폼 제출 상태 등)에 따라 시간 입력 필드를 잠그거나 해제해야 하는 경우 유용하게 활용할 수 있습니다. 참고로 readOnly가 적용된 필드는 사용자가 수정할 수 없지만, 폼 제출 시에는 값이 정상적으로 전송된다는 점도 기억해 두면 좋습니다.