jQuery Mobile 다이얼로그 select —
multiple · data-native-menu="false"
일반 select 메뉴를 jQM이 큰 모바일 친화 다이얼로그로 변환하는 패턴이다. multiple로 복수 선택 가능하고, data-native-menu="false"로 OS의 기본 메뉴 대신 jQM 커스텀 UI를 띄운다.
일반 select는 한 번에 한 개만 선택된다. multiple="multiple"(또는 그냥 multiple)을 추가하면 여러 개를 동시에 선택할 수 있다.
서버에는 선택된 값들이 같은 name으로 여러 번 전송된다 — 예: age1=num2&age1=num3. PHP의 경우 name="age1[]"로 받아 배열로 처리한다.
name="age1"로 되어 있다. PHP에서 받으려면 name="age1[]"로 고치는 게 좋다. 그래야 여러 값을 배열로 받을 수 있다.모바일에서 select를 누르면 보통 OS가 제공하는 작은 메뉴가 뜬다. 안드로이드/iOS마다 모양이 다르고 디자인 통제가 안 된다.
data-native-menu="false"는 OS 메뉴를 끄고 jQM이 만든 큰 풀스크린 다이얼로그를 띄우게 한다. 그러면:
- 모든 OS에서 똑같은 모양 — 디자인 일관성
- option 항목이 큰 버튼처럼 보여서 터치 쉬움
- multiple 선택 시 체크 표시가 명확
true는 빠르고 OS 친화적, false는 디자인 일관성 + 복수 선택 UX가 좋다. multiple과 짝지어 쓰는 경우 거의 항상 false.첫 번째 option이 data-placeholder="true"인 경우, jQM은 그것을 "선택하세요" 안내 텍스트로 다룬다. 사용자가 실제로 선택할 수 있는 항목이 아니다.
placeholder의 value=" "(공백 한 칸)도 의도적이다. 빈 값과 다른 의미로 "선택 안 함"을 표현하기 위해서다.
| 속성 조합 | UI | 선택 |
|---|---|---|
| (기본) single + native-menu true | OS 작은 드롭다운 | 한 개 |
| (기본) single + native-menu false | jQM 커스텀 작은 메뉴 | 한 개 |
| multiple + native-menu true | OS 멀티 메뉴 (운영체제마다 다름) | 여러 개 |
| multiple + native-menu false (본 코드) | jQM 풀스크린 다이얼로그 | 여러 개 |
| 실수 | 증상 | 해결 |
|---|---|---|
| multiple만 쓰고 native-menu=false 빠짐 | OS마다 다르게 보이고 UX 나쁨 | 둘을 짝지어 사용 |
| name="age1" 그대로 PHP 수신 | 마지막 값 하나만 받음 | name="age1[]"로 배열 수신 |
| placeholder option에 value="" | 빈 문자열 전송 — 검증 까다로움 | value=" " 또는 무시 처리 |
오늘날에는 표준 <select multiple>이 모바일에서 잘 작동한다. 하지만 디자인 커스터마이징이 필요하면 Choices.js, Select2, Tom Select 같은 라이브러리가 jQM 다이얼로그를 대체한다. React 환경에서는 react-select가 표준이다.
핵심 한 줄 요약
Tags
'php' 카테고리의 다른 글
| jQuery Mobile 중첩 접이식 패널 — nested collapsible 완전 정리 (0) | 2026.06.24 |
|---|---|
| jQuery Mobile 접이식 패널 — collapsible 완전 정리 (0) | 2026.06.24 |
| jQuery Mobile optgroup — select 그룹화 완전 정리 (0) | 2026.06.24 |
| jQuery Mobile 레인지 슬라이더 — input type=range 완전 정리 (0) | 2026.06.24 |
| jQuery Mobile 체크박스 — controlgroup, horizontal 완전 정리 (0) | 2026.06.24 |
왕진 블로그

댓글