HTML

Input tag property

lshjju 2026. 2. 18. 22:19

입력창의 동작과 제약 조건을 세밀하게 제어하는 <input> 태그의 핵심 속성들에 대해 알아보겠습니다.

이 속성들은 사용자가 폼을 작성할 때의 편의성을 높여주고, 잘못된 데이터가 제출되지 않도록 막아주는 중요한 역할을 합니다.


1. autofocus (자동 커서 활성화)

페이지가 로드되자마자 해당 입력창에 커서가 자동으로 위치하게 만듭니다.

  • 설명: 사용자가 마우스로 입력창을 클릭하지 않아도 바로 타이핑을 시작할 수 있게 돕습니다.
  • 특징: 한 페이지 내에서 단 하나의 요소에만 사용할 수 있습니다. 로그인 페이지의 아이디 입력창 등에 주로 쓰입니다.

2. placeholder (안내 문구)

입력창이 비어 있을 때, 무엇을 입력해야 할지 알려주는 힌트를 연한 회색 글자로 표시합니다.

  • 설명: 입력창의 용도를 직관적으로 전달하며, 실제 입력이 시작되면 자동으로 사라집니다.
  • 주의: placeholder는 보조 수단일 뿐, label 태그를 완전히 대체할 수는 없습니다.

3. readonly (읽기 전용)

사용자가 내용을 볼 수는 있지만, 수정할 수는 없게 만듭니다.

  • 설명: 서버에서 가져온 고정 데이터(예: 사용자 ID, 고정된 주문 번호)를 보여줄 때 사용합니다.
  • 특징: 사용자가 내용을 고칠 수는 없지만, 폼을 제출할 때 그 데이터는 서버로 전송됩니다.

4. required (필수 입력)

폼을 제출하기 전, 해당 칸이 반드시 채워져 있어야 함을 브라우저에 알립니다.

  • 설명: 이 속성이 붙은 칸이 비어 있으면 브라우저가 "이 필드를 입력하세요"라는 경고 메시지를 띄우며 제출을 막습니다.
  • 활용: 아이디, 비밀번호, 이메일 등 서비스 이용에 꼭 필요한 정보에 사용합니다.

🖥️ 실전 예제 코드: "사용자 정보 수정 폼"

모든 속성을 적절히 배치하여 실무적인 폼을 구성해 보겠습니다.

HTML
 
<form action="/update-profile" method="post">
  <p>
    <label for="uid">아이디:</label>
    <input type="text" id="uid" name="userid" value="coding_kim" readonly>
  </p>

  <p>
    <label for="uname">이름:</label>
    <input type="text" id="uname" name="username" 
           placeholder="실명을 입력하세요" 
           autofocus 
           required>
  </p>

  <p>
    <label for="uemail">이메일:</label>
    <input type="email" id="uemail" name="useremail" 
           placeholder="example@mail.com" 
           required>
  </p>

  <button type="submit">수정 완료</button>
</form>

📋 속성 한눈에 비교하기

속성명 역할 데이터 수정 가능 여부 서버 전송 여부
autofocus 커서 자동 위치 가능 전송됨
placeholder 입력 힌트 표시 가능 입력값 전송됨
readonly 읽기 전용으로 설정 불가능 전송됨
required 필수 입력 체크 가능 전송됨

학습 정리

  • **readonly**는 disabled 속성과 비슷해 보이지만, **disabled**는 서버로 데이터가 전송되지 않는다는 결정적인 차이가 있다.
  • **required**는 자바스크립트 없이도 기본적인 입력 검증을 수행해 주어 매우 효율적이다.
  • **placeholder**에 너무 긴 설명을 적기보다는 짧고 명확한 예시를 적는 것이 가독성에 좋다.

입력창의 세밀한 동작을 제어하는 4가지 핵심 속성을 완벽히 마스터하셨습니다!


'HTML' 카테고리의 다른 글

List tag  (0) 2026.02.18
Text tag  (0) 2026.02.18
Input tag type  (0) 2026.02.18
Form tag  (0) 2026.02.18
Form default property  (0) 2026.02.18