2009-11-02 2 views
3

는 전통적으로 우리가 값을 얻기 위해 jQuery를 받고 값은 아래

var value = $("#drop-down-id").val(); 

쓰기 선택했습니다. 필자의 경우 일부 옵션에 공백이있는 단어가 여러 개 포함되어 있습니다 (예 : ) "모두 허용", "인터넷 사용자"등 VALUE에서 내가 얻는 것은 "허용"만 허용됩니다. 즉, jquery는 흰색 뒤의 단어를 잘라냅니다 공간. 이 문제를 해결할 다른 방법이 있습니까?

+1

드롭 다운에 HTML을 포함시켜 정확한 값을 표시 할 수 있다면 도움이 될 수 있습니다. – spaetzel

답변

9

, 당신은 할 수 있습니다 :

var value = $('#drop-down-id option:selected').text(); 
+0

답장을 보내 주셔서 감사합니다. 귀하의 솔루션이 작동했습니다. – uday

+1

당신을 위해 일했을지 모르지만 차이점을 알고 계십시오. text() 애트리뷰트는 DropDownList가 현재 표시하는 것을 가져 오는 반면, val() 애트리뷰트는 "behind"값이다.

+0

그게 아주 좋은 지적이야. 나는 방화 녀석을 조사했는데, "가치"는 한 단어로 정돈되었다. 그래서 .text가 작동하고 .value()가 아닙니다. 기본적으로 json 객체에서 동적으로 채 웁니다. 그것을 체크 아웃해야합니다. 어쨌든 고마워! – uday

6

함께 시도 : 당신이 <option></option>에 싸여 값을 가지고 당신이 발을 사용하지 않는 직접 속성 경우

var value = $("#drop-down-id option:selected").attr("value"); 
+0

답장을 보내 주셔서 감사합니다. 그러나 작동하지 않았습니다. – uday

1

이는 이해되지 않는다. 옵션 텍스트를 가져올 필요가 없습니다. 그렇게해야 할 경우, 옵션 요소가 서버 측에서 잘못된 방법으로 채워질 가능성이 있습니다.

HTML 소스를 확인하면 옵션의 value 속성을 따옴표로 묶을 가능성이 높습니다.

이 사람은 잘못입니다 :

<option value=John Doe>John Doe</option> 
공간이 실제로 HTML의 속성 분리기이기 때문에 그것은 단지, 실제 선택된 값으로 첫 번째 단어를 반환

; 이제 "John"을 값으로 가져오고 "Doe"는 다른 (존재하지 않는) HTML 속성으로 간주됩니다.

이 사람은

<option value="John Doe">John Doe</option> 

당신이 값으로 "홍길동"을 얻을 것이다이 방법 올바른 입니다.