2012-03-19 2 views
1

jQuery mobile을 사용할 때 양식 내에서 ID 속성 사용에 관한 질문이 있습니다. 내가 가진 것이 기능적으로 보이는 반면, 모든 것을 일관되고 정확한 상태로 만들고 싶습니다.양식의 jQuery 모바일 및 고유 ID 속성

JQuery와 모바일 문서 상태 : 형태를 구성하는

jQuery를 모바일에 사용되는 일반 HTTP 포스트를 통해 제출하거나 얻을 양식을 작성하는 데 사용되는 표준 지침의 대부분은 여전히 ​​적용됩니다. 그러나 명심해야 할 것은 폼 컨트롤의 id 속성은 주어진 페이지에서 유일 할뿐만 아니라 사이트의 페이지 전체에서 고유해야한다는 것입니다. 이는 jQuery Mobile의 단일 페이지 탐색 모델이 여러 다른 "페이지"가 ​​동시에 DOM에 존재할 수 있기 때문에 고유 한 ID 속성을 사용하도록주의해야하므로 DOM에 각각 하나씩 만있을 수 있습니다 (그리고 물론, for 속성을 통해 레이블 요소와 적절히 짝을 지어야합니다.

나는 여러 페이지 웹 사이트를 운영하고 있습니다. 페이지 당 1 개의 양식. 모든 페이지의 모든 양식에는 페이지 이름을 기반으로 고유 한 ID가 있습니다 (예 : "return-user-details.php"페이지에는 id = "rudForm"의 양식 ID가 표시됨).

그러나 많은 페이지에서 동일한 입력 필드 (사용자 이름에 대한 텍스트 필드 요소 (양식 컨트롤?))가 필요합니다. 이들은 모두 name = "username"속성과 값을 사용합니다. ID 속성이 없습니다.

현재이 특정 필드 제시 등 :

<legend>Username:</legend> 
<input type="text" name="username" maxlength="20" /><label for="username">&nbsp;</label> 

내 주요 질문은 내가 모든 페이지에서 사용자 이름 텍스트 필드뿐만 아니라 양식 ID에 대한 고유 ID가 필요하거나 할 수 있는지 여부입니다 나는 모든 페이지에서이 필드에 대해 id = "username"을 사용합니까? 나는 이것에 대한 답이 요소/폼 컨트롤에도 모두 적용될 것이라고 생각하십니까? 따라서 페이지의 양식에있는 모든 ID에 대해 "페이지 접두사"를 사용하는 것이 좋습니다.

내가 말했듯이, 현재 나는이 필드를 포함하는 각각 다른 페이지를 사용할 수 있으며, 그들은 잘 작동하는 것처럼 보이므로, 이후의 질문은 위의 것을 사용하여 잘못 될 수있는 것에 관한 것입니까? "DOM에 여러 페이지가 존재 함"이라는 추상적 개념을 이해하고 있지만 (예 : 고유해야 할 일이 필요함) jQuery가 문제로 어떻게 변환되는지 충분히 이해할 수는 없습니다. 스타일링/서식 지정 문제가 발생할 수 있습니까? 또는 부정확 한 데이터가 제출 될 수 있습니까?

많은 감사,

답변

2

여러 항목이 하나의 HTML 문서에 같은 id 속성을 가지고하는 것은 결코 유효합니다. ID를 지정하지 않으면 장면 뒤에서 생성되거나 공백으로 남아 있습니다. 어쨌든 id 속성 충돌은 없어야합니다.

편집 : 우리는 jQuery 모바일 사이트에서도 컨트롤을 재사용하며 우리와 같이 id 속성을 지정하지 않습니다. 이것은 잘 작동하고 거의 1 년 동안 생산되었습니다.

+0

안녕하세요. 답장을 보내 주셔서 감사합니다. 나는 하나의 HTML 문서에서 같은 ID 속성을 재사용하지 않는다. - 분명하지 않다면 미안하다. : 나는 페이지 당 하나의 폼을 가지고있다. 각 양식에는 고유 한 ID가 있습니다. 그러나 예를 들어 page1.php에는 사용자 이름 필드가있을 수 있으며 page2.php에는 사용자 이름 필드가있을 수 있습니다. 고유 ID가 필요합니까? 그들이 같은 페이지에 있다면 이것은 분명하지만 그렇지 않습니다.페이지는 그러나 jQuery 모바일을 사용하고 있으며 이것은 다른 HTML 문서에서도 고유 한 ID를 가지고 있다는 것을 암시하는 것으로 보이며 그 부분이 혼란 스럽습니다. 당신이 나처럼 그것을 사용하고 아무런 문제가 없다는 소식을 듣고 기쁘다. – Robin

+0

응답이 지연되어 죄송합니다 ... 단일 페이지 응용 프로그램을 사용하는 경우. – mckeejm