티스토리 뷰
HTML 폼 요소에 Readonly 효과 적용하기: jQuery를 활용한 코드 작성법
Coding Life 2024. 11. 24. 11:52폼 요소를 다루다 보면 select와 checkbox 요소에 readonly 속성을 적용해야 할 때가 있습니다. HTML 표준에서는 input 요소와 달리 select나 checkbox에 직접적으로 readonly 속성을 적용할 수 없기 때문에 JavaScript 또는 jQuery를 사용해 간접적으로 처리해야 합니다. 이번 글에서는 이를 효율적으로 구현하는 방법을 알려드리겠습니다.
select 요소에 Readonly 효과 적용하기
select 요소는 기본적으로 값을 선택할 수 있도록 드롭다운 메뉴가 열립니다. 하지만 readonly 속성을 적용해야 할 경우, JavaScript를 활용해 사용자가 메뉴를 열지 못하게 설정할 수 있습니다.
jQuery 코드 예제
$('select[data-readonly="true"]').on('mousedown', function(event) {
event.preventDefault();
});
코드 설명
- select[data-readonly="true"]: HTML의 data-readonly 속성이 true로 설정된 select 요소를 선택합니다.
- mousedown 이벤트를 사용: 사용자가 마우스로 드롭다운 메뉴를 클릭하려고 할 때 동작을 방지합니다.
- event.preventDefault(): 기본 동작을 취소하여 메뉴가 열리지 않도록 합니다.
checkbox 요소에 Readonly 효과 적용하기
checkbox는 값을 체크하거나 해제하는 요소로, HTML 표준에는 readonly 속성이 정의되어 있지 않습니다. 따라서 JavaScript를 사용해 체크박스의 클릭 동작 자체를 막아야 합니다.
jQuery 코드 예제
$('input[type="checkbox"][data-readonly="true"]').on('click', function(event) {
event.preventDefault();
});
코드 설명
- input[type="checkbox"][data-readonly="true"]: data-readonly 속성이 true로 설정된 checkbox 요소를 선택합니다.
- click 이벤트를 사용: 사용자가 체크박스를 클릭했을 때 동작을 방지합니다.
- event.preventDefault(): 기본 클릭 동작을 취소하여 체크박스의 상태가 변경되지 않도록 만듭니다.
코드를 활용할 때 주의할 점
- data-readonly 속성으로 상태를 정의하세요
HTML 요소에 data-readonly="true" 속성을 추가해 readonly 상태를 적용합니다. 예를 들어: - <select data-readonly="true"> <option>Option 1</option> <option>Option 2</option> </select> <input type="checkbox" data-readonly="true" />
- jQuery가 반드시 포함되어야 합니다
위 코드는 jQuery 라이브러리를 기반으로 작성되었습니다. 페이지에 jQuery를 로드한 후 사용해야 정상적으로 동작합니다. - UI 개선과 UX를 고려하세요
사용자가 readonly 상태를 알 수 있도록 비활성화 스타일을 적용하거나 메시지를 추가해 혼란을 줄이는 것이 좋습니다.
결론: 이 코드를 언제, 어떻게 활용해야 할까요?
폼 요소에 readonly를 적용하는 것은 사용자가 특정 조건에서 데이터를 수정하지 못하도록 제한할 때 유용합니다. 예를 들어, 승인된 데이터나 조회 전용 데이터를 보여줄 때 사용자가 값을 변경하지 못하도록 설정할 수 있습니다.
이번 코드는 간단한 설정만으로 select와 checkbox 요소에 readonly 효과를 부여할 수 있습니다. 특히 jQuery를 활용하면 코드가 더 간결하고 관리하기 쉬워집니다. 여러분의 프로젝트에 필요한 폼 제어 기능을 추가할 때 이 코드를 적용해 보세요! 😊
이 글이 여러분의 웹 개발에 조금이라도 도움이 되었길 바랍니다!
'IT tech Coding > jquery' 카테고리의 다른 글
제이쿼리 DataTables 사용법: 초보자를 위한 상세 가이드 (0) | 2025.02.11 |
---|---|
대량 데이터도 빠르게! DataTables 서버사이드 처리와 모듈화로 최적화하기 (0) | 2024.12.21 |
jquery ajax 중복호출 벗어나자, 진짜 이것때문에 개고생함 (5) | 2023.03.24 |
[jquery] 웹에서 특정 버튼이나 문구 등 마우스 오른쪽 버튼 누를때 메뉴보이게 만들기 (0) | 2023.03.02 |
[jquery] 아이템을 상하 조정하고 싶을때 사용하면 되는 방법 (0) | 2023.03.02 |
- Total
- Today
- Yesterday
- json파일형태보기
- 구글드라이브API
- 1. #웹개발 2. #로트번호 3. #성적서보기 4. #ajax 5. #jquery 6. #php 7. #프론트엔드 8. #백엔드 9. #부트스트랩 10. #웹기능구현
- 티스토리챌린지
- 효율적코딩방법
- 웹제작강의안2주차
- #데이터베이스설계
- #카테고리트리
- General error: 2031
- 도면자동생성
- #계층형데이터
- 오블완
- #웹개발
- #php에러해결 #php경고메시지 #nonwellformednumeric #php초보자팁 #웹개발에러 #프로그래밍디버깅 #php정규식 #코드디버깅팁 #웹개발문제해결 #php숫자형변환
- coalesce는 한국어로 "코얼레스크" 또는 "코얼리스"
- 캐드자동작도
- Bootstrap 5
- 자바스크립트 코드 기본지식
- #트리구조
- ajax오류메시지
- json파일편하게보는법
- 엑셀입력보호
- 오토핫키가이드
- 엑셀보호
- #데이터무결성
- 엑셀셀보호
- isset을 적용해야 하는 이유
- #tuigrid #자바스크립트그리드 #행삽입 #행삭제 #웹개발팁 #프론트엔드개발 #javascriptgrid #데이터테이블 #ui개선 #그리드커스터마이징
- #동적ui
- #textarea #자동높이조절 #ux개선 #웹개발 #프론트엔드 #자바스크립트 #html팁 #웹디자인 #uiux #코딩팁
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |