2010-05-18 3 views
0

"questionairre"는 일련의 선택 상자로 구성되어 있습니다.jQuery를 사용하여 select 요소의 선택된 옵션 이름이나 ID를 얻는 방법

옵션에 두 가지 속성을 사용해야합니다. 선택한 각 옵션에 대해 나는 (나는 얻는 법을 잘 알고있다) 값을 필요로하지만 DB의 특정 옵션의 ID를 나타내는 추가 값을 저장해야한다.

하나의 솔루션은 "value"속성에 두 값을 넣고 구문 분석하는 것입니다.하지만 다른 속성이 있으면 더 쉽고 명확하게 사용할 수 있습니다 .. 사용자 지정 속성을 추가 할 수 있습니까? ? jQuery로 접근 할 수있는 databaseId 같은 것이 있습니까?

아무쪼록 고맙습니다.

답변

2

더 이상 유효한 HTML이 아니므로 맞춤 속성을 추가하지 않겠습니다.

option 요소 중 "일반"ID 속성 (즉 HTML 요소가있는 ID 속성)을 사용할 수 없습니까?
ID가 필요한 경우 접두어를 붙이고 ID의 하위 문자열 (예 :

<option id="db23123" value="value">Value</option> 

아니면 select가 어떻게 구성되어 있는지 따라, 당신은 또한 데이터베이스 ID에 대한 value 속성을 사용할 수 있고 (이 사람이 읽을 수있는 경우) 옵션 내부 텍스트로 다른 "값"을 넣어 :

<option value="23123">Human Readable Value</option> 

그런 다음 .val().text()을 통해 DB ID를 얻을 수 있습니다.


자바 스크립트를 통해 option 요소를 동적으로 생성하는 것은 .data() 기능을 사용하는 것입니다. 이를 통해 임의의 키 - 값 쌍을 모든 DOM 노드에 연결할 수 있습니다.

+0

예 그렇습니다 : http://jsfiddle.net/h0qjhg7L/ –

+0

죄송합니다, 당신의 jFiddle을보기 전에 원래의 코멘트를 삭제했습니다. 작동하지만 개발자에게 액세스하는 방법을 명확하게해야한다고 생각합니다. 표시하는 jFiddle은 일반 'option'요소에 액세스하지만, 둘 이상의 옵션 요소가있는 경우 모든 결과를 함께 연결합니다. 내가 생각한 원래 게시물은 선택된 요소의 ID를 얻는 것이 었습니다. ("#my_selector : selected"). attr ("id"); .... 내가 잘못되었거나 잘못 읽지 않는 한, 전적으로 가능합니다. – Shem

+0

@Shem : 물론 그렇습니다.하지만 이것을 알아 내기 위해'.text '를 사용하는 누군가가 기대합니다. 설명서에 따르면 * 일치하는 요소 집합의 각 요소에 결합 된 텍스트 내용 (자손 포함)을 가져 오거나 일치하는 요소의 텍스트 내용을 설정합니다. * 특정 (단일) 요소의 텍스트를 원한다면 그 중 하나만 선택해야합니다. 하지만 그래, 나는 내가 선택한 옵션을 얻는 방법을 보여주지 않았다는 데 동의한다. –

1

metadata-plugin을 사용할 수 있습니다.

당신은 다음과 같이 사용할 수 있습니다

마크 업 :

<select> 
    <option class="{db_id: 1}" name="X" value="y" selected="selected"> 
    [...] 
</select> 

스크립트 :

var data = $('option:selected').metadata(); 
    alert(data.db_id); 
관련 문제