[분석] Duplicate form field id in the same form 경고 (user_phone 중복 ID) #8

Open
opened 2026-02-05 12:57:28 +09:00 by lectom · 0 comments

증상

브라우저 콘솔에서 Duplicate form field id in the same form 경고가 발생합니다.

원인 분석

동일 form 내부에 id="user_phone"중복으로 존재합니다. 폼 검증/접근성/JS 셀렉터 충돌을 유발하며, 브라우저 콘솔에서 경고가 출력됩니다.

중복 발생 파일

  • kngil/skin/pop_join.php
  • kngil/skin/pop_join2.php
  • kngil/skin/pop_join3.php
  • kngil/skin/pop_mypage04.php
  • kngil/skin/pop_mypage05.php
  • kngil/skin/pop_mypage06.php

공통 패턴: 휴대전화번호 입력을 상태별로 여러 <tr>에 복제하면서 같은 id를 사용함.

연관 코드

  • JS에서 #user_phone을 사용 중
    • kngil/js/join.js
    • kngil/js/mypage.js

조치 제안 (택1)

A) 단일 입력으로 구조 변경 (권장)

  • user_phone 입력 필드는 하나만 유지
  • 타이머/완료표시/변경버튼은 상태별로 보여주되, 입력은 공유
  • JS는 #user_phone 하나만 제어

B) 중복 id 제거 + data-attr로 제어

  • 각 입력에 고유 id 부여 (예: user_phone, user_phone_verified, user_phone_change)
  • 라벨 for도 각 id에 맞게 분리
  • JS는 컨텍스트 기준 form.querySelector('[name="userPhone"]') 또는 data-role로 제어

기대 효과

  • 콘솔 경고 제거
  • 폼 검증/접근성 개선
  • JS 셀렉터 충돌 방지

검증 체크리스트

  • 회원가입/마이페이지 팝업 열기 시 콘솔 경고 없음
  • 휴대전화번호 입력/인증 흐름 정상 동작
  • #user_phone 관련 JS 오류 없음
## 증상 브라우저 콘솔에서 `Duplicate form field id in the same form` 경고가 발생합니다. ## 원인 분석 동일 form 내부에 `id="user_phone"`가 **중복**으로 존재합니다. 폼 검증/접근성/JS 셀렉터 충돌을 유발하며, 브라우저 콘솔에서 경고가 출력됩니다. ### 중복 발생 파일 - `kngil/skin/pop_join.php` - `kngil/skin/pop_join2.php` - `kngil/skin/pop_join3.php` - `kngil/skin/pop_mypage04.php` - `kngil/skin/pop_mypage05.php` - `kngil/skin/pop_mypage06.php` 공통 패턴: 휴대전화번호 입력을 상태별로 여러 `<tr>`에 복제하면서 **같은 id**를 사용함. ## 연관 코드 - JS에서 `#user_phone`을 사용 중 - `kngil/js/join.js` - `kngil/js/mypage.js` ## 조치 제안 (택1) ### A) 단일 입력으로 구조 변경 (권장) - `user_phone` 입력 필드는 **하나만 유지** - 타이머/완료표시/변경버튼은 상태별로 보여주되, 입력은 공유 - JS는 `#user_phone` 하나만 제어 ### B) 중복 id 제거 + data-attr로 제어 - 각 입력에 고유 id 부여 (예: `user_phone`, `user_phone_verified`, `user_phone_change`) - 라벨 `for`도 각 id에 맞게 분리 - JS는 컨텍스트 기준 `form.querySelector('[name="userPhone"]')` 또는 `data-role`로 제어 ## 기대 효과 - 콘솔 경고 제거 - 폼 검증/접근성 개선 - JS 셀렉터 충돌 방지 ## 검증 체크리스트 - 회원가입/마이페이지 팝업 열기 시 콘솔 경고 없음 - 휴대전화번호 입력/인증 흐름 정상 동작 - `#user_phone` 관련 JS 오류 없음
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: b24014/kngil_home#8