2009-07-28 2 views
8

나는 나의 선택 상자 인 노드가 (? 하나 더있는 경우에도) 나는 현재 선택되어 <option> 값을 얻는 방법YUI 3에서 선택 상자 값을 얻으려면 어떻게해야합니까? YUI 3에서

Y.get('#regionSelect'); 

을 또한, 튜토리얼 거기 밖으로 거기에 명시 적으로이 작업을 수행하는 방법이 나와 있습니다 (전체 양식을 직렬화하고 싶지는 않습니다). 당신이 선택이되면

답변

12

, 당신이 할 수있는 체인 geteach

Y.get("#regionSelect").get("options").each(function() { 
    // this = option from the select 
    var selected = this.get('selected'); 
    var value = this.get('value'); 
    var text = this.get('text'); 
    // apply secret sauce here 
}); 

나는 단지 일을 알아 내기 위해 http://developer.yahoo.com/yui/3/에 데모/예제를 사용했습니다.

+0

감사합니다! 속성을 얻는 방법은 어디에 있습니까? – ash

+1

안녕하십니까. DOM에 대한 모든 JavaScript 자습서에는 select 및 option 객체 (물론 다른 모든 객체)에 대한 attrib가 있어야합니다. 그것들은 YUI에 특정한 것이 아니라 DOM의 일부입니다. 예 : http://www.w3schools.com/htmldom/dom_obj_select.asp – seth

+0

'selected'및 'text'는 실제로는 선택자이며 속성은 아닙니다. 왼쪽으로 .... – seth

8

는 값

  • Y.one ('#의 regionSelect') ._ node.value를 선정 //;
  • Y.one ('# regionSelect'). get ('value');

는 인덱스

  • Y.one ('#의 regionSelect') ._ node.selectedIndex 선정 //;
  • Y.one ('# regionSelect'). get ('selectedIndex'); 당신은 단지 선택된 하나 필요한 경우
+0

이것은 항상 빈 문자열을 반환합니다 ... 옵션과 그 값을 가져올 필요가 없습니까? – lisak

+0

"_node"속성은 YUI Node API의 일부가 아닙니다. 당신은 결코 그것에 의지해서는 안됩니다. – Nathan

+0

"_node"는 YUI 코딩 표준을 기반으로 한 * 비공개 * 객체 속성입니다. –

5

당신은 모든 옵션을 반복 할 필요가 있습니다 당신은 직접 사용할 수 있습니다

var index = Y.get("#regionSelect").get('selectedIndex'); 
var value = Y.get("#regionSelect").get("options").item(index).getAttribute('value'); 
1

. IE를 지원하려면 selector-css3 모듈이 필요합니다.

YUI().use("selector-css3", "node", function (Y) { 
    var text = Y.one("#ownerSelector option:checked").get("text"); 
}); 

http://jsfiddle.net/neosoyn/r8crW/

+0

업데이트 된 방법에 대해 감사드립니다. – AngelWarrior